У меня есть изображение, ширина которого должна быть анимирована от 0 до 30 пикселей, когда значение boolean изменится на true
назад с 30 до 0 пикселей, если свойство вернется к false
. В общем, это работает с этим XAML кодом:WPF: Анимация ширины элемента управления поочередно с начальным значением
<Image.Style>
<Style TargetType="{x:Type Image}">
<!-- <Setter Property="Width" Value="0"/> -->
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=AIM, Path=IsDeletingEnabled}" Value="True">
<Setter Property="Visibility" Value="Visible"/>
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<!-- Animate the Width of the Image from 0 to 30px within 300ms-->
<DoubleAnimation Storyboard.TargetProperty="Width" From="0" To="30" Duration="0:0:0.3"/>
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<!-- Animate the Width of the Image from 30 to 0px within 300ms-->
<DoubleAnimation Storyboard.TargetProperty="Width" From="30" To="0" Duration="0:0:0.3" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.ExitActions>
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
Проблема заключается в том, что перед Property IsDeletingEnabled
переключается на истинный первый раз, изображение семы WITDH является 30px, и это видно. Когда я раскомментировал первый сеттер и установил Witdh
по умолчанию 0px (или Visibility
- Hidden
), изображение не отображается при запуске, но сразу же исчезает после переключения IsDeletingEnabled
от true
10 до fals
. В этом случае анимация не видна.
Имеет anywone решения, как я могу установить Visibility
к Hidden
или Witdh
к 0px при запуске, не скрывая DataTrigger.ExitAction
?
Что такое 'IsDeletingEnabled'? Что такое элемент «AIM»? Некоторые не понимают, как именно работать с анимацией. Когда у вас это работает, а где нет? Я работаю отлично показать/скрыть изображение с помощью CheckBox (свойство 'IsChecking'). –
Изображение является частью UserControl, 'IsDeletingEnabled' является логическим' DependencyProperty' этого элемента управления, который задается моделью представления родительского окна, 'AIM' является именем UserControl в XAML. Я использую 'ElementName =" AIM ", чтобы избежать установки DataContext. При запуске 'IsDeletingEnabled' является' false'. В этом случае «Изображение» не должно быть видимым. Но когда я использую сеттер для этого, анимация на 'ExitAction' не работает. – Buchter
Как я понял, если вы установили истинную работу анимации IsDeletingEnabled, но если установка ложной анимации не работает? –