WPF与默认Windows主题不一致

时间:2012-06-27 16:45:46

标签: wpf themes aero

我真的需要你的帮助。

我正在开发一个WPF应用程序。在我的开发机器中,我使用的是带有Aero主题的Windows 7。

我已将该应用程序交付给使用Server 2008且没有Aero主题的同事。

嗯,应用程序外观&跌倒了。

主要问题是我不理解某些行为的原因。让我们选择一个应该简单的,这应该足以让我理解真正的问题:Expander!

我在UserControl中使用了很多Expanders并且我声明了Expander风格:

<Style TargetType="Expander">
    <Setter Property="Background" Value="#FF9B9B9B" />
    <Setter Property="Padding" Value="0" />
</Style>

在我的机器上看起来很棒(带有Aero的Windows 7)。在我的同事机器中,背景值得到尊重,但切换按钮有一个灰色的背景边框(似乎是SystemColors.ControlBrushKey)。

这启用了Aero,我想要的方式: enter image description here

这就是我对经典主题的看法: enter image description here

我在这里做错了什么?我能做些什么才能使我的应用程序在Aero和Classic中看起来不错?

如果我使用我的应用程序发送Aero XAML文件,它是否适用于XP机器?

由于

3 个答案:

答案 0 :(得分:3)

看看这个blog post。似乎作者可能已经能够解决这个问题。

答案 1 :(得分:2)

看起来我发现了问题。我不太明白为什么这必须像这样但是.......

问题是样式定义。它必须是这样的:

<Style TargetType="{x:Type Expander}" BasedOn="{StaticResource {x:Type Expander}}">

因此,我必须分析我定义的所有样式并添加'BasedOn'属性。

谢谢大家。

答案 2 :(得分:0)

您可以通过添加命名空间

强制窗口的aero主题
xmlns:Microsoft_Windows_Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero"

这适用于XP机器,因为它内置于WPF随附的组件中。