2011-04-07 69 views
1

我有一個針對性的WPF風格:WPF風格適用不一致

<Style x:Key="ImgFadeStyle" 
     TargetType="Image"> 
    <Style.Triggers> 
     <Trigger Property="IsEnabled" Value="false"> 
      <Setter Property="Opacity" Value=".5" /> 
     </Trigger> 
    </Style.Triggers> 
</Style> 

我把它應用到一些圖片:

<Image Name="imgFirst" 
    Grid.Column="0" 
    Style="{StaticResource ImgFadeStyle}" 
    Source="pack://application:,,,/AppGUI;component/Images/Temp/resultset_first.png" 
    ToolTip="First" 
    MouseLeftButtonUp="imgFirst_MouseLeftButtonUp" /> 

<Image Name="imgLast" 
    Grid.Column="6" 
    Style="{StaticResource ImgFadeStyle}" 
    Source="pack://application:,,,/AppGUI;component/Images/Temp/resultset_last.png" 
    ToolTip="Last" 
    MouseLeftButtonUp="imgLast_MouseLeftButtonUp" /> 

在代碼隱藏,我設置了IsEnabled屬性設置爲「真」或者「假」。第一張圖片總是按預期做出反應。第二張圖片對屬性更改沒有反應。有誰知道什麼是錯的?

謝謝。

+0

H.B.很可能是正確的。您可以使用[WPF Visualizer](http://blogs.msdn.com/b/jgoldb/archive/2010/05/25/wpf-visualizer-in-visual-studio-2010.aspx)輕鬆驗證。如果您在點擊一個斷點後(例如在imgLast_MouseLeftButtonUp中)在監視窗口中有imgLast,則可以單擊放大鏡。它會列出右側的屬性,它會告訴你不透明度屬性的來源。 – CodeNaked 2011-04-08 00:30:41

回答

2

這可能是由Dependency Property value precedence引起的問題,如果您明確地將最後一張圖片的Opacity設置爲0,則可能會覆蓋樣式的成果。

+0

好想法,但不透明度不設置在任何其他位置。 – Sako73 2011-04-07 20:22:38

+0

那麼,沒有理由不去查看你的代碼。我很確定上下文有問題。無法真正告訴你任何事情只是看着這個。 – 2011-04-07 20:25:42