我在Visual Studio 2010 Express(C#)中创建了WPF应用程序,并将以下文本添加到App.xaml中的Application.Resources中。我在设计器中看到了应用于窗口的样式,但是当我运行该应用程序时,窗口背景为白色。
如果这样做,则可以在MacBook Pro的BootCamp上的Windows XP中运行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>
最佳答案
Microsoft已经复制了该问题,并且看起来它可能是WPF 4.0中的错误。
https://connect.microsoft.com/VisualStudio/feedback/details/555322/global-wpf-styles-are-not-shown-when-using-2-levels-of-references
在提交该错误的人员进行了研究之后,我将合并后的资源字典中包含的所有单个XAML资源文件全部提取,并将样式文本剪切并粘贴到单个UberStyles.xaml文件中。我避免使用MergedDictionaries。
这解决了问题,并且我的WPF 3.5应用程序中的样式信息又回到了我的WPF 4.0应用程序中。
在我看来,这是WPF 4.0中的一个明显错误-我不确定您如何将其强制转换为功能,并且该行为未记录在案。我有点担心此对整个WPF 4.0平台的影响。您可能以为这会在Visual Studio 2010版本的测试中被发现!
无论如何,希望这会有所帮助。自从两周前我们升级到VS2010以来,我一直被这个错误所困扰。
关于WPF窗口样式在运行时不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2642220/