我创建了一个文本框模板以及它的状态。状态主要在那里,以便我可以使用故事板来显示/隐藏视觉元素。
例如,我有一个“错误”状态组,其中包含“新错误”和“无错误”等转换。
我也有触发器检查控件的“Validate.HasError”是否设置为“True”或“False”。
我想通过使用这些触发器来更改控件的状态,这样只要控件验证失败,我就可以播放正确的动画。
换句话说,我可以通过使用这些触发器将控件的状态更改为“新错误”或“无错误”吗?
我最好不要使用代码隐藏来改变状态(即:VisualStateManager.GoToState(...))
答案 0 :(得分:1)
当触发器的操作被激活或停用时,我只是分配了不同的故事板,而不是使用状态:
<ControlTemplate.Triggers>
<Trigger Property="Validation.HasError" Value="true">
<Trigger.ExitActions>
<BeginStoryboard x:Name="HideError_BeginStoryboard" Storyboard="{StaticResource HideError}"/>
</Trigger.ExitActions>
<Trigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource DisplayError}"/>
</Trigger.EnterActions>
</Trigger>
</ControlTemplate.Triggers>