2011-09-13 43 views
2

我已经创建了一个UserControl,里面有一个按钮,也有一个按钮样式。该样式将鼠标悬停在触发器上时设置按钮背景。现在我添加了一个ICommand类型的依赖属性,并将button命令设置为这个新属性。但是,禁用自定义控件时(canexecute = false),命令绑定可以正常工作,但鼠标悬停触发器仍会更改背景。WPF UserControl和ICommand

我试图改变鼠标触发这样的,但它不工作:

<MultiTrigger.Conditions> 
    <Condition Property="IsMouseOver" Value="True"/> 
    <Condition Property="IsEnabled" Value="True"/> 
</MultiTrigger.Conditions> 
<Setter Property="Background" Value="Orange"/> 
</MultiTrigger> 

谁能帮助?

+1

所以你的问题是,它不应该被禁用,或者虽然被禁用,它显示了鼠标的影响? –

回答

1

我认为在条件中引用的IsEnabled属性是控件的属性,而不是按钮。所以控制已启用,这就是触发条件为真的原因。要访问按钮,您可以尝试使用Relative Source标记扩展。
您可以尝试类似:

<Condition Binding="{Binding RelativeSource={RelativeSource 
           AncestorType={x:Type Button}}, 
          Path=IsEnabled}" 
      Value="True"/> 
+0

它可能是与命令的CanExecuteChange事件,但我不能说没有看到代码 –