Я работаю над переходом некоторого кода из silverlight в WPF, и мои VisualStates работают некорректно.wpf использовать VisualStateManager для изменения Видимость
Я использую visualstatemanager для контроля видимости некоторых текстовых полей. Я не использую никаких переходов для анимации изменения, я просто хочу, чтобы поля были свернуты в одном состоянии, а затем видны в другом.
Xaml из Silverlight:
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="LostPasswordStates">
<VisualState x:Name="LostPassword_Start">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="lbl_UserName" Storyboard.TargetProperty="(UIElement.Visibility)">
<DiscreteObjectKeyFrame KeyTime="00:00:00" Value="Visible" />
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="txt_UserName" Storyboard.TargetProperty="(UIElement.Visibility)">
<DiscreteObjectKeyFrame KeyTime="00:00:00" Value="Visible" />
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="txt_UserName" Storyboard.TargetProperty="(TextBox.IsReadOnly)">
<DiscreteObjectKeyFrame KeyTime="00:00:00" Value="False" />
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
<VisualState x:Name="LostPassword_Success">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="lbl_UserName" Storyboard.TargetProperty="(UIElement.Visibility)">
<DiscreteObjectKeyFrame KeyTime="00:00:00" Value="Collapsed" />
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="txt_UserName" Storyboard.TargetProperty="(UIElement.Visibility)">
<DiscreteObjectKeyFrame KeyTime="00:00:00" Value="Collapsed" />
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="btn_Reset" Storyboard.TargetProperty="(UIElement.Visibility)">
<DiscreteObjectKeyFrame KeyTime="00:00:00" Value="Collapsed" />
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
я получаю следующее исключение:
Необработанное исключение типа 'System.Windows.Media.Animation.AnimationException' произошло в PresentationCore.dll
Дополнительная информация: Невозможно анимировать свойство «Видимость» в «System.Windows.Controls.TextBox» с помощью «System.Windows.Me» dia.Animation.ObjectAnimationUsingKeyFrames. Подробнее см. Внутреннее исключение.
Так что мой вопрос к вам:
Если я не могу использовать System.Windows.Media.Animation. ObjectAnimationUsingKeyFrames для этого, что я должен использовать?
Какая версия WPF? У меня есть практически идентичный раскадровка, оживляющая свойство 'UIElement.Visibility' на' Border', которое отлично работает в 4.0 и 4.5. –
Единственное отличие, которое я вижу, это то, что я использую '{x: Static Visibility.Visible}' как 'Value', а не просто' Visible'. –
Вы правы, я изменил значения в формате {x: Static Visibility.Collapsed} в моем коде wpf. (Я скопировал текст выше stright из версии silverlight) Кроме того, я использую .net 4.5 – Shaboboo