Eruano's Blog

Simple y sencillo … como debe ser!

Entradas etiquetadas ‘WPF

WPF – Efecto enfocar/resaltar elemento

dejar un comentario »

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.

 

Escrito por eruano

23 febrero 2011 a 11:45 pm

WPF – Ejecutar animacion desde codigo

dejar un comentario »

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.

Escrito por eruano

20 febrero 2011 a 10:59 pm

Escrito en Programacion, Visual Studio, WPF

Etiquetado con , ,

WPF – Terminar Aplicacion

con un comentario

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();

Escrito por eruano

16 febrero 2011 a 11:12 am

Escrito en Programacion, Visual Studio, WPF

Etiquetado con ,

Seguir

Get every new post delivered to your Inbox.