我真的需要你的帮助。
我正在开发一个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,我想要的方式:
这就是我对经典主题的看法:
我在这里做错了什么?我能做些什么才能使我的应用程序在Aero和Classic中看起来不错?
如果我使用我的应用程序发送Aero XAML文件,它是否适用于XP机器?
由于
答案 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随附的组件中。