我创建了一个UserControl,里面有一个按钮,也有按钮的样式。样式设置鼠标悬停触发时的按钮背景。现在我添加了一个ICommand类型的依赖项属性,并将button命令设置为这个新属性。命令绑定正常工作但是当禁用自定义控件时(canexecute = false),鼠标悬停触发器仍然会更改背景。
我已尝试将鼠标改为触发器,但这样做不起作用:
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="True"/>
<Condition Property="IsEnabled" Value="True"/>
</MultiTrigger.Conditions>
<Setter Property="Background" Value="Orange"/>
</MultiTrigger>
有人可以帮忙吗?
答案 0 :(得分:1)
我认为在Condition中引用的IsEnabled属性是Control的属性,而不是Button。因此控制已启用,这就是触发条件为真的原因。要访问该按钮,您可以尝试使用Relative Source
标记扩展
您可以尝试以下方式:
<Condition Binding="{Binding RelativeSource={RelativeSource
AncestorType={x:Type Button}},
Path=IsEnabled}"
Value="True"/>