2011-03-18 68 views
0

我有以下WPF:不能看CanClick是虛假的,WPF

<Style x:Key="HyperlinkStyle" TargetType="Hyperlink"> 
    <Setter Property="Foreground"  
      Value="{StaticResource {x:Static SystemColors.ControlTextBrushKey}}"/> 
    <Setter Property="TextDecorations" Value="{x:Null}"/> 
</Style> 

<TextBlock>     
    <Hyperlink Command="{Binding ClickCommand, Mode=OneTime}"  
       Style="{StaticResource HyperlinkStyle}"> 
     <StackPanel Orientation="Horizontal">      
      <Image Margin="0,2,2,0" Source="{Binding Icon}" />   
      <TextBlock Text="{Binding Text}" />     
     </StackPanel>     
    </Hyperlink>    
</TextBlock> 

的問題是,你不能看到,如果CanClick上點擊指令是假的。

回答

1

當超鏈接的命令爲false時,它被禁用(IsEnabled應該爲false)。檢查確實如此,並且子項也被禁用。你有沒有嘗試找到失敗的地方?例如,刪除您的自定義樣式或子元素(用簡單的文本替換它們),以便您可以看到問題出在哪裏。

編輯: 所以風格是問題。在這種情況下,請嘗試繼承默認樣式:

<Style 
    x:Key="HyperlinkStyle" 
    TargetType="{x:Type Hyperlink}" 
    BasedOn="{StaticResource {x:Type Hyperlink}}"> 
+0

如果我刪除了自定義樣式,它將起作用。但是,文字是藍色的,我希望它是黑色的。 – magol 2011-03-18 13:59:25

+0

它解決了這個問題。謝謝。但我該怎麼做才能使圖標變灰。 – magol 2011-03-18 14:58:09

+0

原因是「禁用」外觀是通過修改前景和/或文本顏色爲灰色完成的。 WPF圖像沒有「禁用外觀」(不幸),所以你必須自己做。例如,請參閱http://apocryph.org/2007/08/26/rendering_disabled_grayed_out_image_buttons_wpf/。 – 2011-03-18 15:32:11