Как я могу анимировать ширину элемента от 0 до его фактической ширины в WPF?Ширина анимации до фактической ширины в WPF?
Я попытался это:
<ControlTemplate.Triggers>
<EventTrigger RoutedEvent="Loaded">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Duration="0:0:0.3" To="{Binding ElementName=MyElement, Path=ActualWidth}" From="0" Storyboard.TargetProperty="Width" Storyboard.TargetName="MyElement" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</ControlTemplate.Triggers>
Если изменить привязку к жестко закодированного значения, как 100
, то ширина правильно анимированные, за исключением того, что я хочу, чтобы привязать к фактической ширине элемента.
Если это имеет значение, MyElement
- это граница, и я анимация элемента табуляции.
Для записи, это не работает, либо:
To="{Binding RelativeSource={RelativeSource AncestorType={x:Type Border}}, Path=ActualWidth}"
Кто-нибудь получил это, чтобы работать для 'BindableDoubleAnimation', которые находятся внутри' Storyboard', который находится в 'VisualState'' ControlTemplate'? Для случаев, когда у меня есть только одна «BindableDoubleAnimation» в «VisualState», а я жестко задаю значение «Кому» (чтобы сказать что-то вроде «100»), ничего не анимируется, и ни «GetCurrentValueCore», ни «CreateInstanceCore» не вызываются , В случаях, когда я использую привязку данных к свойству «To», привязка всегда терпит неудачу, всегда выдает ошибку «Невозможно найти источник для привязки ...». Даже когда я пробую все сверху дословно, он терпит неудачу. –
... Я бы хотел, чтобы это сработало - похоже, это отличное решение! –