我有一个无法解决的问题,所以我请她寻求帮助。
这是导致我出现问题的代码的一部分:
<Style.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsSelected" Value="False"/>
<Condition Property="IsMouseOver" Value="True"/>
</MultiTrigger.Conditions>
<MultiTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation To="#E1E1E1"
Storyboard.TargetProperty="(TabItem.Background).(SolidColorBrush.Color)"
Duration="00:00:00.3"/>
</Storyboard>
</BeginStoryboard>
</MultiTrigger.EnterActions>
<MultiTrigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation To="#F2F2F2"
Storyboard.TargetProperty="(TabItem.Background).(SolidColorBrush.Color)"
Duration="00:00:00.3"/>
</Storyboard>
</BeginStoryboard>
</MultiTrigger.ExitActions>
</MultiTrigger>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="#3090C7" />
<Setter Property="Foreground" Value="#F2F2F2" />
<Setter Property="BorderThickness" Value="0" />
</Trigger>
</Style.Triggers>
我想要做的是,当我将鼠标悬停在选项卡项(未选择)上时,背景会淡入深灰色,当鼠标离开时,深灰色应淡回浅灰色。这工作正常(使用多重触发器,如您所见),但问题是当我单击选项卡项目(未选择一个)时,tabitem 将更改为 isSelected 触发器样式约 0.1 秒,然后 Multitrigger.ExitActions 将覆盖样式和 tabitem将变成深灰色。
我的母语不是英语!我试图尽可能地描述我的问题。感谢所有尝试帮助我的人。
In the ColorAnimation
在你的ExitActions
故事板,删除To
价值。这意味着动画将会发生,但目标值将是当前设置的值 - 在本例中是通过样式更改获取的值IsSelected
扳机。您的代码应如下所示:
<Style.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsSelected" Value="False"/>
<Condition Property="IsMouseOver" Value="True"/>
</MultiTrigger.Conditions>
<MultiTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation To="#E1E1E1"
Storyboard.TargetProperty="(TabItem.Background).(SolidColorBrush.Color)"
Duration="00:00:00.3"/>
</Storyboard>
</BeginStoryboard>
</MultiTrigger.EnterActions>
<MultiTrigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<ColorAnimation Storyboard.TargetProperty="(TabItem.Background).(SolidColorBrush.Color)"
Duration="00:00:00.3"/>
</Storyboard>
</BeginStoryboard>
</MultiTrigger.ExitActions>
</MultiTrigger>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="#3090C7" />
<Setter Property="Foreground" Value="#F2F2F2" />
<Setter Property="BorderThickness" Value="0" />
</Trigger>
</Style.Triggers>
我实际上并没有检查这段代码是否100%正确。如果它不起作用,请随时通知我。如果您想了解有关依赖属性值优先级的更多信息,请阅读本文:http://msdn.microsoft.com/en-us/library/ms743230(v=vs.110).aspx http://msdn.microsoft.com/en-us/library/ms743230(v=vs.110).aspx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)