【发布时间】:2013-09-26 14:11:54
【问题描述】:
我有一个 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 上的Aero2,我想加载Aero2-styles.xaml。
我希望这可以通过使用 Themes 目录并提供 Aero.NormalColor.xaml 和 Aero2.NormalColor.xaml 来实现。不幸的是,这似乎只适用于 custom 控件,而不适用于内置控件。它也不会使可用的键可用作静态/动态参考。
有没有办法做到这一点?提供可能包含自定义的基本资源字典,然后提供另一个主题相关字典,对使用的主题进行细微调整?
【问题讨论】:
-
MSDN 上的相关问题,遗憾的是没有明确的答案:social.msdn.microsoft.com/Forums/vstudio/en-US/…
标签: wpf