2009-10-23 14 views
1

我有一個展開/摺疊一些StackPanel的動畫,在窗口中有一些ToggleButton,當StackPanel摺疊時必須取消選中。我有動畫這樣的:從WPF的StoryBoard中檢查/取消選中ToggleButton

<Storyboard x:Key="cmdUnchecked"> 
    <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="StackPanel1" Storyboard.TargetProperty="(FrameworkElement.Height)"> 
     <SplineDoubleKeyFrame KeyTime="00:00:00.3000000" Value="37"/> 
    </DoubleAnimationUsingKeyFrames> 
</Storyboard> 

這個隱藏StackPanel,但我需要從其他活動取消的T oggleButton

是否可以取消選中ToggleButton從這個StoryBoard

如果是這樣,我是否需要驗證它是否已被選中/未選中?

回答

1

您可以使用ObjectAnimationUsingKeyFrames像這樣:

<ObjectAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="YourToggleButton" Storyboard.TargetProperty="(ToggleButton.IsChecked)"> 
    <DiscreteObjectKeyFrame KeyTime="0:0:0" Value="False" /> 
</ObjectAnimationUsingKeyFrames> 

你不應該需要檢查,如果它已經因爲當它已經假應該沒有副作用,它設置爲false檢查。

+0

當ToggleButton未選中時,它不執行任何操作,並且選中時拋出錯誤「Can not a 'System.Windows.Controls.Primitives.ToggleButton'與'System.Windows.Media.Animation.ObjectAnimationUsingKeyFrames'的nimate屬性'IsChecked'「我做錯了什麼? – Luis 2009-10-23 18:20:09

1

您應該使用BooleanAnimations動畫布爾值:

 <BooleanAnimationUsingKeyFrames Storyboard.TargetName="YourToggleButton" Storyboard.TargetProperty="IsChecked"> 
      <DiscreteBooleanKeyFrame Value="False" KeyTime="0:0:0"/> 
    </BooleanAnimationUsingKeyFrames> 

你可以把你DoubleAnimationsToggleButton.Triggers作爲EventTriggersRoutedEventsCheckedUnckecked,然後只檢查/ unckeck切換按鈕與BooleanAnimationToggleButton會自動運行改變堆疊面板高度的雙重動畫

相關問題