Posts Tagged ‘WPF’
WPF – Efecto enfocar/resaltar elemento
Revisando los tutoriales de WPF for dummies me encontre con un efecto sencillo pero que da un toque chevere a los proyectos: El resaltado de elementos cuando el mouse pasa sobre ellos. He aqui un ejemplo sencillo.
…
<UserControl.Resources>
<!– Se define el estilo para el elemento a animar –>
<Style TargetType=»{x:Type Border}» x:Key=»BorderStyle»>
<!– Se define el valor por defecto de la opacidad –>
<Setter Property=»Image.Opacity» Value=»0.5″></Setter>
<Style.Triggers>
<!– Se define el evento que desencadela la animacion –>
<Trigger Property=»IsMouseOver» Value=»True»>
<!– Se establece el valor de la opacidad en un valor mayor –>
<Setter Property=»Image.Opacity» Value=»1″></Setter>
</Trigger>
</Style.Triggers>
</Style>
</UserControl.Resources>
…
<Canvas>
<!– Se define el elemento que va a utilizar el estilo definido arriba –>
<Border BorderThickness=»3″ Height=»50″ Width=»100″ CornerRadius=»10″
BorderBrush=»#FFF70000″ Style=»{StaticResource BorderStyle}»>
<TextBlock Margin=»15,5,13,5″ TextWrapping=»Wrap»>
<Run Foreground=»White» FontWeight=»Bold» FontSize=»16″ Text=»Aceptar»/>
</TextBlock>
</Border>
</Canvas>
…
Con este simple codigo cuando pasen el mouse sobre el elemento (incluyendo sus hijos) se vera un efecto de resaltado.
Saludos.
WPF – Ejecutar animacion desde codigo
En WPF es comun querer ejecutar una animacion previamente definida en el XAML de un control o ventana desde codigo. Aqui un pequenio ejemplo:
Teniendo definida una accion que debe desencadenar un Click Izquierdo como esta:
<!– XAML Code –>
<UserControl>
<UserControl.RenderTransform>
<TransformGroup>
<TranslateTransform x:Name=»TTranslateX» />
</TransformGroup>
</UserControl.RenderTransform>
<UserControl.Triggers >
<EventTrigger RoutedEvent=»UserControl.MouseLeftButtonUp»>
<EventTrigger.Actions>
<BeginStoryboard Name=»objBeginStoryBoard»>
<Storyboard Name=»objStoryBoard»>
<DoubleAnimation x:Name=»ElementoX» Storyboard.TargetName=»TTranslateX»
Storyboard.TargetProperty=»X»
From=»0″ To=»0″ Duration=»0:0:1″/>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</UserControl.Triggers>
…
</UserControl>
Habiendole asignado un nombre al StoryBoard en donde se define la animacion, esta se puede iniciar desde el codigo de este UserControl haciendo simplemente algo como esto:
/* C# Code */
public void Animar() {
objStoryBoard.Begin();
}
Luego solo bastara con llamar a la funcion de este control desde donde se desee desencadenar la accion.
Saludos.
WPF – Terminar Aplicacion
En aplicaciones windows para dar por terminada una aplicación desde codigo se utliza algo como:
/* C# Example */ this.Application.Exit();
Trabajando con WPF me encontre con la duda de como se terminaban las aplicaciones? Pues bien, en aplicaciones WPF para dar por terminada la aplicación se debe utilizar la siguiente sentencia:
/* C# Example */ App.Current.Shutdown();