如何为CustomControl设置不同的主题样式?

时间:2013-12-01 22:25:43

标签: wpf themes

我正在创建CustomControl,并且编译器知道我的控件样式是在Generic.xaml中定义的...如何更改它并指向别的东西?

2 个答案:

答案 0 :(得分:0)

您可以使用Style Class。 在你的例子中,我认为你可以这样做。在App.xaml中,您可以创建一个空样式

  

样式x:Key =“MyStyle”TargetType =“MyCustomControl”BasedOn =“{StaticResource Style1}”

其中Style1是Generic.xaml中的样式。在运行时,您可以通过以下方式更改样式:

  

var style = Resources [“MyStyle”]作为Style;

     

style.BasedOn = Resources [“theOtherStyle”]为Style;

或类似的东西,我没有尝试过代码。

答案 1 :(得分:0)

Uri resourceLocater = new Uri("/AssemblyName;component/pathToXaml/name.xaml", System.UriKind.Relative);
ResourceDictionary resourceDictionary = (ResourceDictionary)Application.LoadComponent(resourceLocater);
Style = resourceDictionary["StyleKey"] as Style;