En mi Application.Resources
Tengo el siguiente Storyboard
definido.WP7 - Uso de Storyboard define en Application.Resources
<Application.Resources>
<!--Storyboard animation for fading out a UI element-->
<Storyboard x:Key="FadeOutAnimation">
<DoubleAnimation From="1"
To="0"
Duration="0:0:0.25"
Storyboard.TargetProperty="Opacity"
AutoReverse="False" />
</Storyboard>
</Application.Resources>
En código subyacente que estoy usando esta a desaparecer algunos TextBlock
s cuando el usuario pulsa sobre ellos.
// Get the storyboard from application resources
Storyboard sb = (Storyboard)App.Current.Resources["FadeOutAnimation"];
// Setup the animation target for fade out
Storyboard.SetTarget(sb.Children.ElementAt(0) as DoubleAnimation, myTextBlock);
// Set the animation completed handler
sb.Completed += (s, e1) => {
// Stop the Storyboard
sb.Stop();
// Hide the TextBlock
myTextBlock.Visibility = Visibility.Collapsed;
};
// Start the Storyboard
sb.begin();
La pregunta es, ¿Qué necesito de alguna manera 'desenganche' myTextBlock
de ser el blanco de la DoubleAnimation
?
Si es así, ¿cómo lo hago?
La razón por la que estoy pidiendo es que me preocupa una referencia a esa TextBlock
dando vueltas hasta que este guión gráfico se utiliza de nuevo.
Gracias por su ayuda!
Tienes razón, es mejor hacer esto en código subyacente. – Praetorian
@Praetorian: No todo el código es "código subyacente", lo anterior no lo es. Puedes imaginar una clase de ayuda con varios métodos útiles. Simplemente se convierte en una parte de tu propio juego de herramientas. – AnthonyWJones
¿Qué se necesita para usar la instancia del guion gráfico? – kabuto178