2
添加MergedDictionaries将样式我有这个style
在资源文件:通过代码
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Colors.xaml"/>
</ResourceDictionary.MergedDictionaries>
<Style TargetType="TextBox" x:Key="StandardTextBox"/>
<Setter Property="Foreground" Value="{StaticResource Color1}"/>
</Style>
</ResourceDictionary>
(Colors.xaml包含我brushes
)
使用style
我的代码:
ResourceDictionary TetxboxStyles = new ResourceDictionary();
TetxboxStyles.Source = (new Uri("TextboxStyles.xaml", UriKind.RelativeOrAbsolute));
Resources.MergedDictionaries.Add(TetxboxStyles);
tb_input.Style = (Style)Find("StandardTextBox");
这种方法没有问题,但当我通过代码而不是TextboxStyles文件动态添加颜色资源时,它不起作用:
ResourceDictionary TetxboxStyles = new ResourceDictionary();
TetxboxStyles.Source = (new Uri("TextboxStyles.xaml", UriKind.RelativeOrAbsolute));
//Adding the Colors.xaml Resource
ResourceDictionary Colors = new ResourceDictionary();
brushes.Source = (new Uri("Colors.xaml", UriKind.RelativeOrAbsolute));
TetxboxStyles.MergedDictionaries.Add(Colors);
Resources.MergedDictionaries.Add(TetxboxStyles);
tb_input.Style = (Style)Find("StandardTextBox");
输出错误:
System.Windows.Markup.XamlParseException
"{DependencyProperty.UnsetValue}"
你想通过资源字典 “Brushes.xaml” 画你的文本框?包含刷TextboxStyles.xaml , 文件: – StepUp
文件,其中包含风格Colors.xaml 文本框具有TextboxtStyles.xaml它的风格,同时你为什么需要TextboxSyles.xaml具有Colors.xaml – MyNameIsHans
它的颜色/画笔将多个ResourceDictionaries应用于一个控件(到您的TextBox)?因为您应该在一个ResourceDictionary中编写自己的模板,您可以在其中定义颜色和控件的画笔,如https://msdn.microsoft.com/de-de/library/ms752068(v=vs.85).aspx – StepUp