¿Cómo puedo animar el ancho de un elemento desde 0 hasta su ancho real en WPF?Ancho de animación al ancho real en WPF?
yo probamos este:
<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>
Si cambio la unión a un valor codificado, como 100
, entonces el ancho está animado correctamente, salvo que yo quiero para unirse a la anchura real del elemento.
Si es importante, MyElement
es un borde, y estoy animando un elemento de tabulación.
Para el registro, esto no funciona bien:
To="{Binding RelativeSource={RelativeSource AncestorType={x:Type Border}}, Path=ActualWidth}"
¿Alguien ha conseguido que esto funcione para 'BinbleDoubleAnimation's que están dentro de un' Storyboard' que está en 'VisualState' de' ControlTemplate'? Para los casos en que tengo solo un 'BindableDoubleAnimation' en' VisualState' y código de código para el valor "To" (para decir algo como "100"), nada se anima, y ni 'GetCurrentValueCore' ni' CreateInstanceCore' se están llamando . En los casos en que utilizo el enlace de datos en la propiedad "Para", el enlace siempre falla, siempre generando el error "No se puede encontrar el origen del enlace ...". Incluso cuando pruebo todo textualmente desde arriba, falla. –
... Me encantaría hacer que esto funcione, ¡parece que podría ser una gran solución! –