WPF:使用触发器更改控件的状态

时间:2011-09-16 20:25:32

标签: .net wpf

我创建了一个文本框模板以及它的状态。状态主要在那里,以便我可以使用故事板来显示/隐藏视觉元素。

例如,我有一个“错误”状态组,其中包含“新错误”和“无错误”等转换。

我也有触发器检查控件的“Validate.HasError”是否设置为“True”或“False”。

我想通过使用这些触发器来更改控件的状态,这样只要控件验证失败,我就可以播放正确的动画。

换句话说,我可以通过使用这些触发器将控件的状态更改为“新错误”或“无错误”吗?

我最好不要使用代码隐藏来改变状态(即:VisualStateManager.GoToState(...))

1 个答案:

答案 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>