我有一个 WPF 应用程序,我在其中稍微更改了默认样式,以添加一些常见的填充或边距,或类似的东西。我通常Window.Resources
在窗口或应用程序的资源中加载或在某些资源字典中执行此操作。示例样式可能是这样的:
<Style TargetType="{x:Type Button}">
<Setter Property="Margin" Value="5" />
</Style>
到目前为止,一切都很好。请注意,我正在更改默认组件,而不是用户组件。
今天我注意到 Windows 8 中使用的Aero2主题带有一些与 Windows 7 的Aero主题不同的标准样式。不幸的是,我并没有真正能够制作出一种适用于两者的通用样式。
因此,我希望能够指定不同的样式,具体取决于用户使用的主题。例如,如果用户使用Aero,我想加载Aero-styles.xaml
,如果它是Windows 8 上的Aero2Aero2-styles.xaml
,我想加载。
我希望通过使用Themes目录并提供Aero.NormalColor.xaml
和Aero2.NormalColor.xaml
. 不幸的是,这似乎只适用于自定义控件,而不是内置控件。它也不会使可用键可用作静态/动态参考。
有没有办法做到这一点?提供可能包含自定义的基本资源字典,然后提供另一个主题相关字典,对使用的主题进行细微调整?