我在Visual Studio 2010 Express(C#)中创建了一个WPF应用程序,并将下面的文本添加到App.xaml中的Application.Resources。我在设计器中看到应用于窗口的样式,但是当我运行应用程序时,窗口背景为白色。
如果这是一个因素,则在MacBook Pro上的BootCamp上运行Windows XP。
提前致谢,
基督教
<Style TargetType="{x:Type Window}">
<Setter Property="Background">
<Setter.Value>
<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
<GradientStop Offset="0" Color="WhiteSmoke" />
<GradientStop Offset="1" Color="Silver" />
</LinearGradientBrush>
</Setter.Value>
</Setter>
<Setter Property="Padding" Value="20" />
</Style>
答案 0 :(得分:11)
Microsoft已经复制了该问题,看起来它可能是WPF 4.0中的一个错误。
在提交错误的人完成研究之后,我将所有包含在合并资源字典中的单个XAML资源文件剪切并粘贴到单个UberStyles.xaml文件中。我避免使用MergedDictionaries。
这解决了问题,我的WPF 3.5应用程序的样式信息又回到了我的WPF 4.0应用程序。
在我看来,这是WPF 4.0中一个明显的错误 - 我不确定你是如何将它作为一个功能转换而且行为没有记录。我有点担心这对整个WPF 4.0平台的影响。您可能会认为这将在Visual Studio 2010 Release的测试中被捕获!
无论如何,希望这会有所帮助。自从我们两周前升级到VS2010以来,我一直被这个bug吓到了。
答案 1 :(得分:0)
答案 2 :(得分:0)
我有同样的问题。我们为每个标准控件开发了一个带有自定义样式的库,它在.net 3.5下在deigner和运行时都可以正常工作。 今天我们决定将我们的项目转换为.net4(wpf 4有许多新的美味功能)。之后在运行时,所有这样的样式都不能在运行时工作,而是应用于designer:
<Style TargetType={x:Type Button}>
<Setter Property="FontSize" Value="14"/>
</Style>
设置x的样式:键工作正常。但是我们需要为主题设置默认样式,而不是为每个控件设置它。