DefaultStyle
s包含DefaultStyle
所有TextBox
es:
public partial class UserControl1 : UserControl
{
public UserControl1()
{
Resources.MergedDictionaries.Add(new DefaultStyles());
InitializeComponent();
}
}
然后是Xaml,我继承了样式并添加了一点:
<UserControl.Resources>
<Style TargetType="TextBox" BasedOn="{StaticResource {x:Type TextBox}}">
<Setter Property="Foreground" Value="Green "/>
</Style>
</UserControl.Resources>
由于找不到我的StackOverFlowException
,因此会引发DefaultStyle
,因此它会自行引用。
为什么样式不能看到合并字典中的默认样式?
答案 0 :(得分:0)
它无法看到它,因为它基本上取代了它。 InitializeComponent
方法调用将使用您在XAML中定义的字典替换您在ctor中引用的字典。
基本上,你做错了。为什么你不能这样做:
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="DefaultStyles.xaml"/>
</ResourceDictionary.MergedDictionaries>
<Style TargetType="TextBox" BasedOn="{StaticResource {x:Type TextBox}}">
...
</Style>
</ResourceDictionary>
</UserControl.Resources>