我有一个自定义按钮MainMenuButton
,类型为UserControl
,目前正在进行样式设计。
现在我想要实现一个MultiTrigger
,只有当满足两个条件时才会改变按钮的外观。
第一个条件是如果IsMouseOver == true
。
我简单地添加了以下Condition
:
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="True"/>
</MultiTrigger.Conditions>
<MultiTrigger.EnterActions>
<Setter TargetName="LayoutRoot" Property="Background" Value="Red">
</MultiTrigger.EnterActions>
<MultiTrigger.ExitActions>
<Setter TargetName="LayoutRoot" Property="Background" Value="Black">
</MultiTrigger.ExitActions>
</MultiTrigger>
第二个条件与
DependencyProperty
相关:public static readonly DependencyProperty IsCheckedProperty = DependencyProperty.Register("IsChecked", typeof(bool), typeof(MainMenuButton), new PropertyMetadata(false));
在另一个SO帖子中,有用户说我可以使用DataTrigger
来响应IsCheckedProperty
。
所以我尝试了另一个帖子中的代码,但它没有起作用:
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="True"/>
<Condition Binding="{Binding RelativeSource={RelativeSource Mode=Self}, Path=IsChecked}" Value="False"/>
</MultiTrigger.Conditions>
<MultiTrigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource MouseEnter}"/>
</MultiTrigger.EnterActions>
<MultiTrigger.ExitActions>
<BeginStoryboard Storyboard="{StaticResource MouseLeave}"/>
</MultiTrigger.ExitActions>
</MultiTrigger>
这个问题该怎么解决呢?感谢任何答案! :)