2011-03-18 67 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