问题描述
一个UserControl1:<UserControlx:Class="WPF3.UserControl1"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"mc:Ignorable="d"d:DesignHeight="300"d:DesignWidth="300"><GridBackground="#FFC11D1D"/></UserControl>
publicpartialclassUserControl1:UserControl{publicUserControl1(){InitializeComponent();this.Height=100;this.Width=100;}}
一个CustomControl1,控件模板中使用了UserControl1,并将其Width设为2000:<ResourceDictionaryxmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:local="clr-namespace:WPF3"><StyleTargetType="{x:Typelocal:CustomControl1}"><SetterProperty="Template"><Setter.Value><ControlTemplateTargetType="{x:Typelocal:CustomControl1}"><Border><local:UserControl1Width="200"/></Border></ControlTemplate></Setter.Value></Setter></Style></ResourceDictionary>
主窗体:<Windowx:Class="WPF3.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:local="clr-namespace:WPF3"Title="MainWindow"Height="350"Width="525"><Grid><StackPanel><local:CustomControl1/><local:UserControl1Width="200"/></StackPanel></Grid></Window>
在上面的代码中,在两个地方的XAML中设置了UserControl1的Width属性,一个是在CustomControl1控件的控件模板中,一个是在主窗体中,但是最终的结果是,在CustomControl1控件模板中,设置的UserControl1的Width属性没有效果,同样是在XAML中,主窗体中设置的UserControl1的Width属性却是有效果的。请问,这是什么原因呢?
解决方案
解决方案二:
有人知道吗?
解决方案三:
有人知道吗?
解决方案四:
考虑下是不是CustomControl1的大小限制了,导致你无法看到效果,其实usercontrol宽度是有改变的不妨加个按钮看下CustomControl1的宽和usercontrol的宽,调试下就清楚了
解决方案五:
主窗体里最后设置的width把CustomControl1里面的width个覆盖掉了。所以最后应用的是主窗体里面设置的width。对没错,我猜是这样。
解决方案六:
CustomControl1的宽度肯定是Double.NaN的吧。我先知道为什么CustomControl1控件模板中的usercontrol的Width值不是200呢?在XAML中设置了为200的啊
解决方案七:
CustomControl1的宽度肯定是Double.NaN的吧。我想知道为什么CustomControl1控件模板中的usercontrol的Width值不是200呢?在XAML中设置了为200的啊
解决方案八:
有人知道吗..........
解决方案九:
解决方案十:
完全看不懂。
解决方案十一:
引用9楼hiv002的回复:
完全看不懂。
是我说得不够清楚吗?
解决方案十二:
我也遇到这个问题
解决方案十三:
引用11楼u011422316的回复:
我也遇到这个问题
你知道是什么原因吗?
解决方案十四:
没有高手吗?
解决方案十五:
高人在哪里?
其他方案:
其他方案:
高人呢???????????
其他方案:
其他方案:
其他方案:
其他方案:
其他方案:
没明白,不知道你说什么。