WPF窗口样式在运行时不工作

WPF窗口样式在运行时不工作

问题描述:

我在Visual Studio 2010 Express(C#)中创建了一个WPF应用程序,并将以下文本添加到App.xaml中的Application.Resources。我在设计器中看到应用于窗口的样式,但是当我运行应用程序时,窗口背景是白色的。WPF窗口样式在运行时不工作

如果这是一个因素,请在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> 

微软已经复制了这个问题,看起来它可能是WPF 4.0中的一个bug。

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以来,我一直被这个错误所驱使。

遇到下列迷迷糊糊:

How to set default WPF Window Style in app.xaml?

答案是一个样式不会被应用到派生类型。

+1

我不确定这是答案。看到我的帖子在下面...看起来它实际上是一个错误。 – JasonD 2010-05-10 00:57:17

我有同样的问题。我们为每个标准控件开发了一个自定义样式的库,它在deagner和运行时都能在.net 3.5下正常工作。 今天我们决定将我们的项目切换到.net4(wpf 4有许多新的美味特点)。之后,在运行时的所有样式像在运行时,这个不是工作,而是在设计应用:

<Style TargetType={x:Type Button}> 
     <Setter Property="FontSize" Value="14"/> 
</Style> 

样式与设置好的X:重点工作的罚款。但是我们需要为主题设置默认样式,而不是为每个控件设置它。

+0

您是使用标准控件还是使用标准控件的子类?如果你从他们身上继承,那么下面我的答案会给你洞察力。否则,我不知道,因为我不知道什么是参与升级WPF应用程序从3.5至4。 – 2010-04-16 21:25:55