我有一个小问题,我正在处理wpf项目。我是WPF的新手。在我的app.xaml中,我正在为我的应用程序使用Microsoft Aero主题。我在我的app.xaml有这样的东西。压倒一切的主题在WPF
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/PresentationFramework.Aero;V3.0.0.0;31bf3856ad364e35;component/themes/Aero.NormalColor.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
现在我想知道如何重写某些样式属性,例如对于按钮,我想覆盖字体样式,同时保留其余的空气样式。
如果我在窗口资源中为按钮定义样式,例如
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource {x:Type Button}}" x:Key="RedTextBasedOnButton">
<Setter Property="Foreground" Value="Red" />
</Style>
并定义基于上述样式
按钮失去所有航空样式属性的按钮。我认为这个问题是顺便做我定义支持算法FMP属性风格
BasedOn="{StaticResource {x:Type Button}}"
我不认为资源是静态的,因为它来自一个DLL,它或许应该是这样的。但不知道。
BasedOn="{DynamicResource {x:Type Button}}"
但上面会抛出异常,如果我在我的app.xaml中有多个resourcedictionary,例如月神和经典。我该如何判断哪一个用作默认设置,并同时使用另一个(例如luna)覆盖我的用户界面中的某些控件?因此,我的一些按钮将基于月亮风格和一些航空风格,并进行一些进一步的修改?
有什么想法?
问候,
的[覆盖重写WPF主题(http://stackoverflow.com/questions/2377055/override-overriden-wpf-theme) – 2014-07-03 01:37:04
可能重复做任何样式都明确的密钥,你可以绑定? – Killnine 2014-07-09 13:39:38