2

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

我试过像这样更改鼠标悬停触发器,但它不起作用:

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

任何人都可以帮忙吗?

4

1 回答 1

1

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

<Condition Binding="{Binding RelativeSource={RelativeSource
                                 AncestorType={x:Type Button}},
                             Path=IsEnabled}"
           Value="True"/>
于 2011-09-13T18:23:28.447 回答