如何在wpf中将添加了样式的字符串添加到ResourceDictionary中

时间:2010-07-12 09:59:40

标签: c#

我想添加字符串,将样式添加到ResourceDictionary中,这是可能的

Ex : string MyStyle = "<Style x:Key='baseStyle' TargetType='{x:Type Button}'>" +
    "<Setter Property='FontSize' Value='12' />" +
    "<Setter Property='Background' Value='Orange' /></Style>";

我想将此字符串添加到resourcedictionary

如何?

ResourceDictionary rd = new ResourceDictionary();
rd.MergedDictionaries.Clear();
rd.Add("MyStyle", MyStyle);
Application.Current.Resources.MergedDictionaries.Add(rd);

无效......

1 个答案:

答案 0 :(得分:0)

只是因为最初在XAML中描述的东西并不意味着它在运行时是一个字符串(就像你不能使用包含C#片段的字符串而只是运行它)。

您必须使用对象表示:

MyStyle = new Style(){TargetType=typeof(Button)};
MyStyle.Setters.Add(new Setter(){Property="FontSize", Value=12});      
MyStyle.Setters.Add(new Setter(){Property="Backround", Value=Brushes.Orange});
Application.Current.Resources.Add("MyStyle",MyStyle);

如果您有完整的有效XAML文件,则可以使用XamlReader