2011-09-16 109 views
2

我創建了一個文本框模板以及狀態。各州主要在那裏,以便我可以使用故事板來顯示/隱藏視覺元素。WPF:使用觸發器更改控件的狀態

例如,我有一個「錯誤」狀態組,它具有諸如「新錯誤」和「無錯誤」之類的轉換。

我也有觸發器,檢查控件的「Validate.HasError」是否設置爲「True」或「False」。

我想通過使用這些觸發器來更改我的控件的狀態,這樣,只要控件驗證失敗,我就可以播放正確的動畫。

換句話說,我可以通過使用這些觸發器將控件的狀態更改爲「新錯誤」或「無錯誤」嗎?

我想最好想改變狀態,而不必使用代碼隱藏(即:VisualStateManager.GoToState(...))

回答

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> 
相關問題