我正面临这个问题,我真的不明白如何正确设置自定义样式控件的动画效果。我理解这是一个沉重的主题,我读到了许多方法,如VisualStateManager
,触发器和行为。但是,每种方法都有其局限性,我总是回到同一个问题:我该怎么做呢?现在,我坚持使用Trigger方法,因为我认为它是最常用的方法。
但是,我在创建动画逻辑方面苦苦挣扎。例如,我想为文本框的边框设置动画。我创建了三个事件触发器:MouseEnter
,MouseLeave
和GotFocus
。只要鼠标进入控件,文本框的边框就会改变颜色。当它聚焦时,它会再次改变颜色。但是,当鼠标离开时,文本框边框不会保留焦点颜色,但会显示我在MouseLeave
事件触发器中定义的颜色。在这种情况下,如何创建保持焦点颜色的逻辑?
如何解决这些任务?您是否可以推荐描述实际解决方案的良好资源,而不仅仅是可能的方法?
答案 0 :(得分:0)
您可以使用监听多个属性的MultiTrigger
或MultiDataTrigger
:
<Style.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="true"/>
<Condition Property="IsKeyboardFocused" Value="true"/>
</MultiTrigger.Conditions>
<Setter Property="BorderBrush" Value="Red"/>
</MultiTrigger>
</Style.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsMouseOver" Value="true"/>
<Condition Property="IsKeyboardFocused" Value="true"/>
</MultiTrigger.Conditions>
<MultiTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
...
</Storyboard>
</BeginStoryboard>
</MultiTrigger.EnterActions>
...
WPF MultiTrigger和MultiDataTrigger: http://www.wpf-tutorial.com/styles/multi-triggers-multitrigger-multidatatrigger/