2011-05-25 64 views
0

目前,我有一組定義的視覺狀態,其淡入路徑,這裏有一個例子:視覺狀態淡入淡出?

<VisualState x:Name="MyPathFadeIn"> 
    <Storyboard> 
    <ColorAnimation Storyboard.TargetName="MyPath" Storyboard.TargetProperty="(Path.Fill).(SolidColorBrush.Color)" From="#00000000" To="Red" Duration="0:0:1.5" /> 
    </Storyboard> 
</VisualState> 

現在我想知道,有沒有辦法,如果我改變當前自動調用某種淡出狀態從代碼隱藏的視覺狀態?

回答

2

視覺狀態都是關於狀態!在您的代碼後面,您可以通過VisualStateManager.GoToState方法將控件設置爲一個狀態。所以,如果你想'調用'一些淡出狀態,只需將控件設置爲該狀態!

+0

哦對,所以我必須明確地設置一個淡出狀態,然後...希望有一個自動化的方法,但這絕對是公平的,因爲它實際上是一個使用狀態的系統。 – tweetypi 2011-05-25 07:25:41

1

我不確定這是否有幫助,但是當您使用ColorAnimation時,我確信您不必設置ColorAnimation.From屬性。如果未將其保留,則過渡到視覺狀態應從當前設置的顏色開始。 因此,如果您僅使用ColorAnimation.To屬性定義故事板,它可能有助於不得不明確聲明所有內容?

或者,您可以隨時使用自己的子類擴展VisualStateManger。當它收到新的狀態更改時,將所有其他VisualStateGroups設置爲「關閉」?