2009-10-23 3 views
1

У меня есть анимация, которая разворачивает/сворачивает некоторые StackPanel s, в окне есть ToggleButton s, которые должны быть сняты, если StackPanel рухнул. У меня есть анимация, как это:Check/Uncheck ToggleButton From StoryBoard в WPF

<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, но мне нужно, чтобы снять Т 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> 

Вам не нужно, чтобы проверить, если это уже проверено, так как установить его в ложное, когда это уже ложь не должны иметь каких-либо побочных эффектов.

+0

Когда ToggleButton снят с отметки, он ничего не делает, а когда он установлен, выдается сообщение об ошибке «Can not a Свойство nimate «IsChecked» на «System.Windows.Controls.Primitives.ToggleButton» с «System.Windows.Media.Animation.ObjectAnimationUsingKeyFrames» «Я что-то не так? – Luis

1

Вы должны использовать BooleanAnimations анимировать булевы значения:

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

Вы можете поместить свой DoubleAnimations в ToggleButton.Triggers, как EventTriggers на RoutedEventsChecked и Unckecked, а затем просто проверить/unckeck тумблера с BooleanAnimation и ToggleButton будет автоматически запускаться двойная анимация, чтобы изменить высоту стоп-панели

Смежные вопросы