2010-02-18 9 views
7

Bueno, tengo un control personalizado y cuando se cambia a VisibilityVisible tengo un Trigger con una acción de entrar/salir, pero el problema es que cuando la acción de salida dispara el Visibility ya no es Visible por lo que la animación no puede verse cómo ¿Solucionaría esto?WPF ¿Animación de activación cuando se cambia la visibilidad?

aquí es mi Trigger:

<ControlTemplate.Triggers> 
    <Trigger Property="Visibility" Value="Visible"> 
     <Trigger.ExitActions> 
      <BeginStoryboard Storyboard="{StaticResource Hide}"/> 
     </Trigger.ExitActions> 
     <Trigger.EnterActions> 
      <BeginStoryboard Storyboard="{StaticResource Show}"/> 
     </Trigger.EnterActions> 
    </Trigger> 
</ControlTemplate.Triggers> 
+0

Correcto. Cosas complicadas. Resolvería este problema con las propiedades adjuntas + coerción de valor. Eche un vistazo aquí: [WPF Fade Animation] (http://stackoverflow.com/questions/1013817/wpf-fade-animation/1015635#1015635). Espero que esto ayude. Saludos, Anvaka. – Anvaka

+0

¿Tiene esto una animación de desvanecimiento? ¿Puedo editar esto para que solo retrase el ocultamiento/colapso hasta que termine mi animación? – Peter

+0

Me pregunto lo mismo que Petoj. – jpierson

Respuesta

3

yo probamos este también y fracasaron. Creo que no es posible lograr esto en un simple ControlTemplate con un Trigger en la propiedad Visibility. Lo que puede hacer es añadir una animación Opacity de 1 a 0 a un Trigger una propiedad diferente, por ejemplo, un DependencyProperty que se agrega en el código detrás de sí mismo.

0

También se puede usar para establecer ObjectAnimationUsingKeyFramesVisibility para el período animación. En tal caso no hay necesidad en ningún código detrás.

+0

im no es 100% seguro, pero ¿por qué HideStoryboard activa el ShowStoryboard si cambia el valor de Visibility? – Peter

Cuestiones relacionadas