Saltar al contenido
Menú
El blog de Kañaz
  • Inicio
  • Acerca de
  • Github
  • Youtube
  • LinkedIn
  • Twitter
El blog de Kañaz

Enumeradores en Silverlight

Publicada el 8 octubre, 201121 mayo, 2012
Twittear

Cuando he tenido la oportunidad de hablar con estudiantes suelo decirles que no solo de int, string y double vive el hombre, en esta entrada pienso escribir acerca de un tipo especial de variables que se llaman enumeradores.

Este tipo de valor tiene una gran característica, son valores constantes que pueden ser adoptados en ocasiones sucesivas y que se establecen al declararse.

Pero si eres como yo y en la parte práctica lo asimilas mejor, pues vamos a esa parte, en este caso los implementaré dentro de una aplicación Silverlight, pero son aplicables a cualquier tipo de plataforma en la que te quieras mover (WPF, Windows Phone 7, Windows Forms, etc.).

En esta aplicación además de los controles creados al momento de crear la solución, crea un control de usuario únicamente, inserta el siguiente código XAML en ese control de usuario (recuerda modificar el parámetro “x:Class” para que encaje bien con tu solución).

<UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="Enumeradores.ControlPersonalizado"
Width="250" Height="250">
 
<Border x:Name="contPrincipal" BorderBrush="White" BorderThickness="1" Margin="5" Background="#FF323232"/>
</UserControl>

<UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="Enumeradores.ControlPersonalizado" Width="250" Height="250"> <Border x:Name="contPrincipal" BorderBrush="White" BorderThickness="1" Margin="5" Background="#FF323232"/> </UserControl>

Ahora bien, en su code behind, es en donde comenzarás a trabajar con los enumeradores, antes del método constructor, crea la variable que mencioné, de la siguiente forma.

public enum Colores
{
Rojo,
Verde,
Azul,
Blanco,
Negro
}

public enum Colores { Rojo, Verde, Azul, Blanco, Negro }

Y después, crea una variable de tipo Colores (el título de tu enumerador) y su propiedad, para dejarla de la siguiente forma.

private Colores tipo;
 
public Colores Tipo
{
get { return tipo; }
set
{
tipo = value;
switch (tipo)
{
case Colores.Azul:
contPrincipal.Background = new SolidColorBrush(Colors.Blue);
break;
 
case Colores.Rojo:
contPrincipal.Background = new SolidColorBrush(Colors.Red);
break;
 
case Colores.Verde:
contPrincipal.Background = new SolidColorBrush(Colors.Green);
break;
 
case Colores.Blanco:
contPrincipal.Background = new SolidColorBrush(Colors.White);
break;
 
case Colores.Negro:
contPrincipal.Background = new SolidColorBrush(Colors.Black);
break;
 
}
}
}

private Colores tipo; public Colores Tipo { get { return tipo; } set { tipo = value; switch (tipo) { case Colores.Azul: contPrincipal.Background = new SolidColorBrush(Colors.Blue); break; case Colores.Rojo: contPrincipal.Background = new SolidColorBrush(Colors.Red); break; case Colores.Verde: contPrincipal.Background = new SolidColorBrush(Colors.Green); break; case Colores.Blanco: contPrincipal.Background = new SolidColorBrush(Colors.White); break; case Colores.Negro: contPrincipal.Background = new SolidColorBrush(Colors.Black); break; } } }

Ya que tienes tu control personalizado, brinca a tu MainPage y mándalo llamar, para que después coloques cinco botones dejando tu contenedor principal de la siguiente forma.

<Grid x:Name="LayoutRoot" Background="White">
<local:ControlPersonalizado x:Name="controlPrueba" Margin="0,0,0,230" HorizontalAlignment="Left" d:LayoutOverrides="Width"/>
<Button x:Name="btnRojo" Content="Rojo" Height="36" Margin="254,8,285,0" VerticalAlignment="Top" Click="boton_Click"/>
<Button x:Name="btnAzul" Content="Azul" Height="36" Margin="254,48,285,0" VerticalAlignment="Top" Click="boton_Click"/>
<Button x:Name="btnVerde" Content="Verde" Height="36" Margin="254,88,285,0" VerticalAlignment="Top" Click="boton_Click"/>
<Button x:Name="btnBlanco" Content="Blanco" Height="36" Margin="254,128,285,0" VerticalAlignment="Top" Click="boton_Click"/>
<Button x:Name="btnNegro" Content="Negro" Height="36" Margin="254,168,285,0" VerticalAlignment="Top" Click="boton_Click"/>
</Grid>

<Grid x:Name="LayoutRoot" Background="White"> <local:ControlPersonalizado x:Name="controlPrueba" Margin="0,0,0,230" HorizontalAlignment="Left" d:LayoutOverrides="Width"/> <Button x:Name="btnRojo" Content="Rojo" Height="36" Margin="254,8,285,0" VerticalAlignment="Top" Click="boton_Click"/> <Button x:Name="btnAzul" Content="Azul" Height="36" Margin="254,48,285,0" VerticalAlignment="Top" Click="boton_Click"/> <Button x:Name="btnVerde" Content="Verde" Height="36" Margin="254,88,285,0" VerticalAlignment="Top" Click="boton_Click"/> <Button x:Name="btnBlanco" Content="Blanco" Height="36" Margin="254,128,285,0" VerticalAlignment="Top" Click="boton_Click"/> <Button x:Name="btnNegro" Content="Negro" Height="36" Margin="254,168,285,0" VerticalAlignment="Top" Click="boton_Click"/> </Grid>

Ya solo para finalizar, viene mi parte favorita, utilizar el enumerador y propiedad de mi control para dejarlo de la siguiente forma en el evento “Click” del botón.

 

Como puedes ver, es muy sencillo de implementar, y lo mejor del caso es que podrás deducir que es así como se implementan muchas de las herramientas que utilizas frecuentemente.

 

Enumerador

Así que aprovecha esta gran ventaja para ahorrar unas buenas líneas.

Aquí tienes el código.

 

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Busca en este sitio

MI perfil de Github

Github profile

Sígueme en Twitter

Seguir a @aminespinoza
©2023 El blog de Kañaz | Funciona con SuperbThemes y WordPress