Vous êtes sur la page 1sur 32

Universidad

Francisco
Gavidia
FACULTAD DE INGENIERA Y SISTEMAS
Programacion Para windows phone

Laboratorio 04

Contenido
1.

Introduccin.................................................................................................. 3

2.

Windows Phone............................................................................................. 4

3.

Kernel de Windows Phone............................................................................. 5


3.1.

Kernel Windows NT................................................................................. 5

3.2.

Ncleo.................................................................................................... 6

4.

Arquitectura software de Windows Phone.....................................................7

5.

Lenguaje C#................................................................................................. 9
5.1.

C# en Windows Phone..........................................................................10

6.

Herramientas de Desarrollo para Windows Phone......................................11

7.

Estructura de una pgina en Windows Phone.............................................11

8.

Estructura de un proyecto..........................................................................13

9.

Controles Grficos...................................................................................... 15
9.1.

TextBox................................................................................................. 15

9.2.

PasswordBox......................................................................................... 17

9.3.

Botones................................................................................................ 18

9.4.

RadioButtons........................................................................................ 19

9.5.

CheckBox.............................................................................................. 20

9.6.

ComboBox............................................................................................ 23

9.7.

DatePicker............................................................................................ 24

9.8.

TimePicker............................................................................................ 27

10.

Conclusin............................................................................................... 29

1. Introduccin
Para nadie es un secreto que a finales de la dcada pasada, el gran
apogeo de los Smartphone comenz a ser relevante para la industria
software, pues el mundo comenz una migracin hacia el uso de
tecnologa desde el alcance de sus manos, y el uso de equipos
tradicionales comenz a reducir gracias a esta migracin, el nmero de
usuarios comenz a crecer, y comenzaron a usar un diferenciador
particular entre un dispositivo Smartphone y otro, y precisamente no era
por sus caractersticas hardware, sino por su Sistema Operativo, de ah
en

adelante

comienza

relucir

como

factor

diferenciador

entre

dispositivos mviles el sistema operativo.


Apple y Google son los principales competidores en estas plataformas,
Microsoft ocupa el tercer lugar en esta competencia con su nueva
plataforma para dispositivos mviles Windows Phone. Microsoft est
haciendo una apuesta muy grande hacia los desarrolladores de sus
tecnologas. Actualmente obsequia diferentes opciones para crear
aplicaciones para Windows Phone, una de esas es brindar el kit de
desarrollo de manera gratuita y abundante documentacin como
soporte. Tambin est decidido a entrar a competir al mismo nivel junto
a Apple y Google, pero quiere que sus principales protagonistas sean los
mismos desarrolladores de aplicaciones para Windows Phone. Este
documento est orientado a aquellos desarrolladores que deseen
comenzar en el nuevo mundo de Windows Phone, Conociendo sus
estructuras hardware y software, lenguajes usados para el desarrollo
App, documentacin para poder usar el Kit de desarrollo, una gua de
desarrollo de una aplicacin bsica donde se aplique los conceptos
bsicos que se involucran en todo el documento, entre otras cosas.

2. Windows Phone
Windows Phone es la nueva versin del sistema operativo mvil de
Microsoft, este nuevo sistema operativo se ha reconstruido para brindar
una mejor experiencia a sus usuarios, y para los desarrolladores una
plataforma de desarrollo sencillo pero a la vez bastante robusta.
Windows Phone, antes llamado Windows Mobile fue diseado para su
uso en telfonos inteligentes (Smartphones) y est basado en el ncleo
del sistema operativo Windows CE 6.0.
El 15 de Febrero de 2010, durante el Mobile World Congress celebrado
en Barcelona, Microsoft present al mundo su nuevo sistema operativo
para Smartphones: Windows Phone 7.
Su desarrollo comenz en 2008 tras la reorganizacin del equipo de
Windows Mobile y la cancelacin del proyecto Photon, la versin del
sistema en la que Microsoft trabajaba desde 2004 con pocos resultados.
Originalmente se plante su salida al mercado en 2009, pero una serie
de retrasos obligaron a preparar una versin de transicin de Windows
Mobile (WM 6.5) y retrasar el lanzamiento de Windows Phone 7 hasta
Octubre de 2010 en Europa, Noviembre de 2010 en USA y 2011 para
Asia. (Geek.ms)
Siguiendo con las fechas, el 20 de Junio de 2012, Joe Belfiore en un
evento celebrado en San Francisco, present al mundo la nueva versin
del sistema operativo mvil de Microsoft; lo que hasta el momento se
conoca como Apollo, pas formalmente a llamarse Windows Phone 8.
Una de las principales modificaciones que incorpora dicha actualizacin
es la adopcin del ncleo del sistema de Windows 8. A partir de este
momento Windows Core (nombre como se le denomina actualmente)

constituye las tripas de nuestro sistema mvil, dejando as de lado al


utilizado hasta ese momento, el cual era conocido como Windows CE.
Una de las mayores ventajas que aporta el uso de un ncleo comn es
que la integracin entre ambos sistemas es muy extensa. La API de
desarrollo, a partir de este momento, es un subsistema de WinRT,
conocido como WinPRT, compartiendo entre ambos mundos muchas de
las instrucciones.

3. Kernel de Windows Phone


Antes de hablar del Kernel de Windows Phone, es necesario saber qu es
un Kernel.
El

Kernel,

ncleo,

es

un software que

constituye

una

parte

fundamental del sistema operativo, y se define como la parte que se


ejecuta en modo privilegiado (conocido tambin como modo ncleo). Es
el principal responsable de facilitar a los distintos programas acceso
seguro al hardware

de

la computadora o

en

forma

bsica,

es

el

encargado de gestionar recursos, a travs de servicios de llamada al


sistema. Como hay muchos programas y el acceso al hardware es
limitado, tambin se encarga de decidir qu programa podr hacer uso
de un dispositivo de hardware y durante cunto tiempo, lo que se
conoce como multiplexado. Acceder al hardware directamente puede ser
realmente complejo, por lo que los ncleos suelen implementar una
serie

de abstracciones

del

hardware.

Esto

permite

esconder

la

complejidad, y proporciona una interfaz limpia y uniforme al hardware


subyacente, lo que facilita su uso al programador.

3.1.

Kernel Windows NT

Actualmente, en su versin nmero 8, Windows Phone tiene un Kernel


basado en el Kernel Windows NT, el cual se caracteriza por tener
sistemas operativos reentrantes que han sido diseados para trabajar

tanto con computadoras con un slo procesador como computadoras de


multiprocesamiento simtrico que en ingls es el Symmetrical Multi
Processor o SMP. Para procesar las peticiones de entrada/salida (en
ingls Input/Output, I/O) acude a una direccin de paquetes de E/S que
utiliza peticiones (IRPs) y E/S asncrona. A partir de Windows XP,
Microsoft comenz a desarrollar sistemas operativos que soportaban 64bits. Antes sus sistemas operativos estaban basados en un modelo de
32-bits.
Windows NT contiene caractersticas como: servicios multiusuario. Esto
implica que tanto la interfaz como los privilegios del sistema pueden
variar,

en funcin

del

usuario

que

est

conectado

al sistema,

caractersticas nativas de red, etc.


La arquitectura de Windows NT es altamente modular y se basa en dos
capas principales:
Modo usuario: Cuyos programas y subsistemas estn limitados a los
recursos del sistema a los que tienen acceso.
Modo ncleo: Tiene acceso total a la memoria del sistema y los
dispositivos externos. Los ncleos de los sistemas operativos de esta
lnea son todos conocidos como ncleos hbridos, aunque hay que
aclarar que este trmino est en discusin ya que este ncleo es
esencialmente un ncleo monoltico que est estructurado al estilo de
un microncleo. La arquitectura dentro del modo ncleo se compone de
lo siguiente:

Un ncleo hbrido.
Una Capa de Abstraccin de Hardware (HAL).
Controladores o drivers.
Executive: Sobre el cual son implementados todos los servicios de
alto nivel.

El modo ncleo de la lnea de Windows NT est compuesto por


subsistemas capaces de pasar peticiones de E/S a los controladores
apropiados usando el gestor de E/S. Dos subsistemas crean la capa del
modo usuario de Windows 2000: el subsistema de Entorno (ejecuta
aplicaciones escritas para distintos tipos de sistemas operativos), y el
subsistema Integral (maneja funciones especficas de sistema de parte
del subsistema de Entorno). El modo ncleo en Windows 2000 tiene
acceso total al hardware y a los recursos del sistema de la computadora.
El modo ncleo impide a los servicios del modo usuario y las
aplicaciones acceder a reas crticas del sistema operativo a las que no
deberan tener acceso.

3.2.

Ncleo

El ncleo del sistema operativo se encuentra entre el HAL y el Executive


y

proporciona

sincronizacin

multiprocesador,

hilos

envo

planificacin de interrupciones, gestin de interrupciones y envo de


excepciones.

Tambin

es

responsable

de

la

inicializacin

de

controladores de dispositivos que son necesarios en el arranque para


mantener el sistema operativo funcionando. Esto es, el ncleo realiza
casi todas las tareas de un microncleo tradicional. La distincin estricta
entre el Executive y el ncleo consiste en que quedan ms restos en
este ltimo del diseo original del microncleo, (la documentacin
histrica del diseo se refiere al componente del ncleo como "el
microncleo").
El ncleo a menudo interacta con el gestor de procesos.10 El nivel de
abstraccin es tal que el ncleo nunca llama al gestor de procesos:
nicamente se permite lo contrario (salvo para un puado de casos, sin
llegar an hasta el punto de una dependencia funcional).

4. Arquitectura software de Windows Phone.

Modelo de software de Windows Phone


Todo el modelo general de software de Windows Phone est compuesto
por estos elementos que se ven en la imagen.
El modelo de aplicacin, siendo la forma en que se empaquetan y
actan los archivos que componen una aplicacin.
El modelo de UI (Interfaz de Usuario), que define una filosofa de
diseo nica con sus caractersticas fundamentales.
Integracin con la nube, y su importante papel en el mundo mvil
para el xito de una App.
Application Runtime, siendo una estructura base para el proceso
de ejecucin de una aplicacin.

Estructura de una ejecucin de aplicaciones en Windows Phone


7

Estructura de una ejecucin de aplicaciones en Windows Phone


8

a) Shared Windows Core (Ncleo del sistema operativo).


El sistema operativo Windows Compact Embedded (WinCE) que acta
como ncleo en WP7.x fue sustituido por un nuevo sistema operativo
para la nueva versin de WP8, con el fin de generar una compatibilidad
con el OS de Windows para escritorios, Windows 8. Esto quiere decir que
una

gran variedad de cosas

implementacin

para

en WP8

escritorios,

son compartidas

incluyendo

cosas

como:

con

la

Kernel,

Networking, driver FrameWork, entre otros.


El hecho de compartir el ncleo aporta como beneficios caractersticas
innovadoras que facilita un solo flujo trascendental a travs de dos
factores: escritorio tradicional, y dispositivo mvil. Tambin contribuye
con la reduccin de redundancia de ingeniera por el lado de Microsoft.
b) CoreCLR
.NET Compact FrameWork (NETCF) que se usa en WP7 contiene una
filosofa de diseo e implementacin diferente a .NET para escritorios.
NETCF es un ncleo que se considera muy portable y est diseado para
ser estrechamente verstil en diferentes plataformas. Por el contrario, el
ncleo CoreCLR, que se usa para equipos de escritorios, tiene un vnculo

10

estrecho con Windows y se adecua fcilmente a la arquitectura del


procesador.Tambin trabaja muy de cerca con el hardware, ofreciendo el
beneficio mximo de rendimiento al cdigo administrado que se ejecuta
en l.
c) Compatibilidad del cambio.
Una de las declaraciones que se hizo durante el lanzamiento de WP8 fue
que las App que se encuentran en la tienda de aplicaciones de WP7
funcionarn sin ningn inconveniente para WP8. Esto puede ser una
declaracin mnima, pero es un logro con mucho esfuerzo para la
implementacin de la nueva perspectiva del sistema de ejecucin de
aplicaciones. Construir aplicaciones en una plataforma en la cual se han
generado cambios en su SO, Runtime Application y chipset no es una
tarea fcil, la cual el equipo de desarrollo de Microsoft ha realizado para
hacer esto posible.

5. Lenguaje C#
Siendo C# un lenguaje de programacin que permite el desarrollo de
aplicaciones para internet, para mviles y aplicaciones de propsito
general en diferentes plataformas, fue desarrollado inicialmente para
programar en la plataforma
La sintaxis de C# es muy expresiva, pero tambin es sencilla y fcil de
aprender. Esta sintaxis que est basada en signos de llave, podr ser
reconocida inmediatamente por cualquier desarrollador familiarizado con
C, C+ o Java. Los desarrolladores que conocen cualquiera de estos
lenguajes pueden empezar a trabajar de forma productiva en C# en un
plazo muy breve. La sintaxis C# simplifica muchas de las complejidades
de C++ y proporciona caractersticas eficaces.
Como lenguaje orientado a objetos, C# admite los conceptos de
encapsulacin, herencia y polimorfismo. Todas las variables y mtodos

11

se encapsulan dentro de funciones de clase. Las clases pueden heredar


directamente de una clase primaria, y tambin pueden implementar
cualquier nmero de interfaces; los mtodos que reemplazan a los
mtodos virtuales en una clase primaria requieren la palabra clave
Overrride como medio para evitar redefiniciones accidentales.

5.1.

C# en Windows Phone.

En Windows Phone, C# es el lenguaje que permite construir el


funcionamiento de cada uno de los elementos que se declararon en
XAML. Esto quiere decir que, mientras se crea un elemento visual en
XAML en tiempo de diseo (Campo de texto, Botn, Etiqueta, CheckBox,
RadioButton, etc.), genera una instancia dicho elemento creado y podr
ser manipulado con facilidad desde el archivo designado como CodeBehind (Cdigo interno). En el interior del archivo Code-Behind, toda la
estructura de negocio, puede ser manejada por lenguajes administrados
de .NET FrameWork, ya sea Visual Basic.NET, o C#. En los siguientes
casos se trabajar con C#.
En una pgina de Windows Phone, el archivo XAML con extensin (.xaml)
posee una estrecha relacin con un archivo Code-Behind con extensin
(.xaml.cs) extensin que hace referencia a Csharp (cs), si fuese para
Visual Basic.NET sera (.xaml.vb). Esto indica que los dos archivos actan
parcialmente en una misma pgina.

12

6. Herramientas de Desarrollo para Windows Phone


La cuestin de Windows Phone, de ser la ms reciente plataforma
operativa para dispositivos mviles de Microsoft, y dado su retraso en
optar por entrar a competir en un negocio donde gran parte del mercado
mvil est custodiado por Apple y Google; Apura al mismo Microsoft a
brindar beneficios de acceso al paquete de herramientas de desarrollo
de manera gratuita, para aquellos interesados en optar por el desarrollo
de App para esta plataforma. El Kit de desarrollo de software SDK para
Windows Phone.
De manera breve un SDK (Software Development kit) o kit de desarrollo
de software, es un conjunto de herramientas de desarrollo de software
que permite al desarrollador crear aplicaciones para un sistema en
concreto.
Normalmente un SDK incluye soporte para la deteccin de errores de
programacin como un entorno de desarrollo o IDE, contienen tambin
cdigos de ejemplo, notas tcnicas o documentacin de soporte, etc.
El SDK de Windows Phone proporciona las herramientas que son
necesarias para desarrollar Apps y juegos para Windows Phone 8 y
Windows Phone 7.x. El paquete completo contiene las siguientes
herramientas:

Visual Studio Express 2012-2010 edition para Windows Phone


Blend para Visual Studio 2012-2010
Windows Phone Developer Registration tool
Windows Phone Connect tool
Emulators de Windows Phone 7.1 y 8.0
Windows Phone Application Analysis tool

13

Simulation Dashboard para Windows Phone

7. Estructura de una pgina en Windows Phone


Cuando se crea un proyecto en Windows Phone, el MainPage.xaml
genera una plantilla visual por defecto, dicha plantilla est compuesta
por una estructura XAML que se apila de la siguiente manera:
Name Space: En primera instancia se generan los espacios de
nombre correspondientes a los elementos XAML que propone El
API de Silverlight, esto a manera de importar todos los recursos
necesarios para manipular los controles nativos de Silverlight para
Windows Phone.
LayoutRoot: luego se genera un contenedor Grid como raz,
con una labor en particular, contener en su interior todos los
controles necesarios. Generalmente el LayoutRoot contiene en si
mismo un TitlePanel y un ContentPanel.
TitlePanel: es generado por un contenedor StackPanel, Trabaja
como

encabezado

de

una

pgina

en

Windows

Phone

habitualmente contiene el nombre de la aplicacin y el nombre de


cada pgina.
ContentPanel: tambin es generado por un contenedor Grid,
trabaja como el cuerpo de la pgina, es aqu donde se ingresa el
contenido visual de las aplicaciones.
ApplicationBar: es una barra que acta como un men principal
de cada pgina, normalmente contiene botones, e tems que
hacen la labor de opciones de men.
En trminos visuales, lo anteriormente dicho se refleja de la siguiente
manera:

14

Estructura de una pgina en Windows Phone

8. Estructura de un proyecto.
Cuando se crea un nuevo proyecto de Silverlight en visual Studio.NET lo
primero que se hace es definir para qu versin de sistema operativo
Windows

Phone

desea

apuntar

la

aplicacin

crear;

esto

por

compatibilidad hace a WP 7.0, WP 7.1 y WP8 los sistemas operativos


soportados, no obstante el desarrollador tendra que tener muy buenas
razones para seleccionar en un proyecto nuevo a WP7.0 como sistema
operativo ya que a pesar de que existen muchas aplicaciones creadas
que apuntan a WP7 no es recomendable.
Una vez que se especifique el sistema operativo al que se desea
apuntar, Automticamente se crea una estructura de carpetas con
diferentes archivos como parte de la estructura inicial de una aplicacin:

15

Se puede apreciar en primera instancia los manifiestos. Los manifiestos


son archivos que poseen extensin .XAML, y brindan metadatos tanto
para la aplicacin Silverlight, como la aplicacin Windows Phone,
necesarios para ubicar una App en la tienda de aplicaciones. Tambin se
puede observar las referencias que se incluyen en un proyecto de WP,
con el fin de hacer referencia dentro de un proyecto a libreras, o
proyectos construidos por terceros. As mismo se incluye un App.XAML y
su Code-Behind, como archivo principal donde se declaran todos
recursos globales y sus respectivos manejadores de eventos globales.
Tambin se incluye el archivo MainPage.XAML y su Code-Behind, que
elementalmente es la pgina principal de una aplicacin, la cual, por
defecto es la primera pgina en ser visual en el momento de ejecutar
una App. Y por ltimo se incluyen algunas imgenes, imgenes que
corresponden al fondo de la aplicacin, la pantalla de precarga que

16

normalmente es la imagen inicial que aparece cuando se ejecuta por


primera vez la aplicacin en un telfono, y el icono que representa a una
aplicacin en la lista de programas instalados dentro de un telfono.

17

9. Controles Grficos
El framework XAML incluye diversos controles para el ingreso y edicin
de texto, as como una lista de propiedades para darle formato. Los
controles para el ingreso de texto son: Textbox, Passwordbox y
RichEditBox.
As tambin posee otros elementos bsicos y tiles para la creacin de
aplicaciones sencillas o complejas; entre los diversos controles que
existen, a continuacin se explicar de forma general algunos de los
ms utilizados, como lo son el TextBox, PasswordBox, Botones,
RadioButtons, entre otros.

9.1.

TextBox

La clase Textbox representa un control que puede ser usado para


mostrar y editar texto plano, ya sea en una o varias lneas.

Para insertar este control, hacemos uso del siguiente cdigo:


<TextBox

Height="35"

Width="200"

Text="I

am

TextBox"

Margin="20"/>

Este control, as como todos, cuenta con una variedad de propiedades


que pueden ser utilizadas segn convenga, por ejemplo, hacer que este
textbox

sea

solo

de

lectura,

utilizando

la

propiedad

<<IsReadOnly="True">>.
A continuacin se muestra un ejemplo del uso de algunas propiedades y
mtodos. Lo que se muestra es la funcionalidad que cuando se

18

selecciona un texto en un textbox, el texto seleccionado se mostrar en


otro con la propiedad IsReadOnly activada:
<TextBox x:Name="textBox1" Height="75" Width="300" Margin="10"
Text="The text that is selected in this TextBox will show up in the
read only TextBox below."
TextWrapping="Wrap" AcceptsReturn="True"
SelectionChanged="TextBox1_SelectionChanged" />
<TextBox x:Name="textBox2" Height="75" Width="300" Margin="5"
TextWrapping="Wrap" AcceptsReturn="True" IsReadOnly="True"/>
<TextBlock x:Name="label1" HorizontalAlignment="Center"/>
<TextBlock x:Name="label2" HorizontalAlignment="Center"/>

Y a continuacin el cdigo en C#

// C#
private

void

TextBox1_SelectionChanged(object

sender,

RoutedEventArgs e)
{
textBox2.Text = textBox1.SelectedText;
label1.Text

"Selection

length

is

"

"Selection

starts

at

"

textBox1.SelectionLength.ToString();
label2.Text

textBox1.SelectionStart.ToString();
}
El resultado es:

19

9.2.

PasswordBox

En el control PasswordBox se puede introducir una lnea de texto que no


ser mostrada al usuario, a menos que este as lo desee, en su lugar se
mostrarn

caracteres

de

contrasea

que

representar

el

texto

ingresado. Una de las propiedades de PasswordBox es que se puede


definir el carcter que se quiere utilizar para ocultar la contrasea, esta
propiedad es: PasswordChar.
A continuacin se muestra un ejemplo del uso de un PasswordBox,
siempre utilizando XAML. El ejemplo concreto consiste en evaluar que la
contrasea ingresada sea diferente de la palabra Password.
Cdigo en XAML
<PasswordBox x:Name="pwBox" Height="35" Width="200"
MaxLength="8"
PasswordChanged="pwBox_PasswordChanged"/>
<TextBlock

x:Name="statusText"

HorizontalAlignment="Center" />

Margin="10"

20

Cdigo C#
// C#
private void pwBox_PasswordChanged(object sender, RoutedEventArgs
e)
{
if (pwBox.Password == "Password")
{
statusText.Text = "'Password' is not allowed as a password.";
}
}

Y el resultado, ser el siguiente:

El control PasswordBox tiene dos formas de mostrar la contrasea que


se ha ingresado, ya sea por medio de un botn que al tocarlo y
mantenerlo presionado la mostrar y al dejar de presionarlo la ocultar
nuevamente:

O un CheckBox, que al seleccionarlo se mostrar la contrasea y al


deseleccionarlo la ocultar nuevamente:

21

9.3.

Botones

Los botones proveen a los usuarios un camino para llevar a cabo ciertas
acciones, ejecutar ciertos comandos, tal como enviar un formulario,
limpiar campos, o resetearlos, etc.
Para agregar un botn con XAML, se hace uso del siguiente cdigo:
<Button Content="Button" Click="Button_Click"/>

Como se puede observar, se han establecido dos propiedades al control


Button, las cuales son Content y Click; la propiedad Content se
refiere a la etiqueta del botn en s, en este caso el texto es Button.
Luego se escriben las lneas de cdigo necesarias para realizar una
accin con el botn recin creado, en este ejemplo se utilizar el
siguiente cdigo que mostrar un mensaje:
private async void Button_Click(object sender, RoutedEventArgs e)
{
Windows.UI.Popups.MessageDialog messageDialog =
new

Windows.UI.Popups.MessageDialog("Gracias

presionarme!");
await messageDialog.ShowAsync();

por

22

9.4.

RadioButtons

Los RadioButton tienen dos estados, seleccionado o deseleccionado.


Dicho estado se puede identificar con la propiedad IsChecked, en el
caso que la opcin se encuentre seleccionada, esta propiedad tomar el
valor True, caso contrario tomar el valor False.
Algo muy importante para hacer un uso adecuado de este control, es
que los RadioButton deben agruparse a travs de su propiedad
GroupName para que puedan ser mutuamente exclusivos, es decir que
al seleccionar una de las opciones, las dems no podrn elegirse, y al
cambiar de opcin, la anterior deber deseleccionarse, de manera que
solo exista una opcin activa.
En el siguiente ejemplo se muestra la creacin de un conjunto de
RadioButton:
<RadioButton

x:Name="TopButton"

Margin="5"

Checked="HandleCheck"
GroupName="First Group" Content="RadioButton1" />
<RadioButton

x:Name="MiddleButton"

Margin="5"

Checked="HandleCheck"
GroupName="First Group" Content="RadioButton2" />
<RadioButton

x:Name="

LowerButton

"

Checked="HandleCheck"
GroupName="First Group" Content="RadioButton3" />
<TextBlock x:Name="choiceTextBlock" Margin="5" />
El resultado sera el siguiente:

Margin="5"

23

Al seleccionar una de las opciones, se mostrar el texto en el TextBlock


programado, para ello se utiliza el siguiente cdigo:
private void HandleCheck(object sender, RoutedEventArgs e)
{
RadioButton rb = sender as RadioButton;
choiceTextBlock.Text = "Has seleccionado: " + rb.Name;

9.5.

CheckBox

Un CheckBox es un control que permite al usuario marcar (check) o


desmarcar una opcin (uncheck).

Este control posee tres estados,

marcado (o chequeado), desmarcado e indeterminado.


Tal como el control RadioButton, el CheckBox permite la seleccin de
tems de una lista, a diferencia del primero, el CheckBox permite marcar
ms de una opcin en un grupo de tems.
Para la insercin de un CheckBox, se utiliza el siguiente cdigo:
<CheckBox x:Name="checkbox1" Content="CheckBox"
Checked="CheckBox_Checked"/>
Lo que generar el siguiente resultado:

24

En el cdigo que se muestra a continuacin, se demuestra el uso y el


comportamiento de los estados que puede tomar el control.
Cdigo en XAML
En este cdigo se insertan dos controles CheckBox y dos TextBlocks:
<!-- two state CheckBox -->
<CheckBox x:Name="cb1" Content="Two State CheckBox"
Checked="HandleCheck" Unchecked="HandleUnchecked"
Margin="5" />
<TextBlock x:Name="text1" Margin="5" />
<!-- three state CheckBox -->
<CheckBox x:Name="cb2" Content="Three State CheckBox"
IsThreeState="True" Checked="HandleCheck"
Indeterminate="HandleThirdState" Unchecked="HandleUnchecked"
Margin="5" />
<TextBlock x:Name="text2" Margin="5" />

Las propiedades del control CheckBox que se utilizan, son: x:Name


que sirve para establecer el nombre con que se identificar el control;
Content, que sirve para definir el contenido del CheckBox; Checked,
que sirve para definir la forma de manejar el control cuando se marque
la casilla; Unchecked, de igual manera que Checked, sirve para definir
la forma de manejar el control cuando se desmarque la casilla;
IsThreeState, sirve para definir si el CheckBox evala en forma de
rbol, es decir, si representa el estado de un conjunto de CheckBox que

25

dependan de l; Indeterminate, que sirve para definir la forma de


manejar el control cuando se encuentre en el estado Indeterminado

Cdigo en C#
private void HandleCheck(object sender, RoutedEventArgs e)
{
CheckBox cb = sender as CheckBox;
if (cb.Name == "cb1")
text1.Text = "Two state CheckBox checked.";
else
text2.Text = "Three state CheckBox checked.";
}
private void HandleUnchecked(object sender, RoutedEventArgs e)
{
CheckBox cb = sender as CheckBox;
if (cb.Name == "cb1")
text1.Text = "Two state CheckBox unchecked.";
else
text2.Text = "Three state CheckBox unchecked.";
}
private void HandleThirdState(object sender, RoutedEventArgs e)
{
CheckBox cb = sender as CheckBox;
text2.Text = "Three state CheckBox indeterminate.";
}

26

El cdigo consta de 3 funciones que sirven para identificar los estados


de los controles CheckBox y se ejecutan dependiendo de la interaccin
del usuario, al final cada mtodo establece en el TextBlock una lnea de
texto definiendo el estado del CheckBox.

9.6.

ComboBox

El ComboBox es un control de seleccin que representa la unin de un


textbox NO editable y un control ListBox, o control de lista, que permite
al usuario seleccionar un tem de dicha lista.
Para insertar un objeto tipo ComboBox, se utiliza un cdigo similar a la
insercin de los RadioButton, una etiqueta de apertura, etiquetas para
aadir los elementos de la lista y la etiqueta de cierre. As tambin
cuenta con una serie de mtodos para poder manipular la funcionalidad
del control.
Para insertar un ComboBox con una lista predefinida, utilizando XAML, se
utiliza el siguiente cdigo:
<ComboBox

x:Name="comboBox1"

SelectionChanged="ComboBox_SelectionChanged" Width="100">
<x:String>Item 1</x:String>
<x:String>Item 2</x:String>
<x:String>Item 3</x:String>
</ComboBox>

El resultado del cdigo sera el que se presenta a continuacin:

27

Tambin se puede utilizar C# para la insercin de este control, tal como


se muestra en el siguiente cdigo:
ComboBox comboBox1 = new ComboBox();
comboBox1.Items.Add("Item 1");
comboBox1.Items.Add("Item 2");
comboBox1.Items.Add("Item 3");
comboBox1.Width = 200;
comboBox1.SelectionChanged += ComboBox_SelectionChanged;

9.7.

DatePicker

El DatePicker es un control que se utiliza para un seleccionar un valor de


tipo fecha. El usuario selecciona la fecha utilizando controles tipo
ComboBox para el da, mes y ao.
A continuacin se muestra el cdigo para insertar un control DatePicker:
<DatePicker x:Name=arrivalDatePicker Header="Arrival Date"/>

En

el

cdigo

anterior,

se

utilizan

dos

atributos

del

control;

x:Name=arrivalDatePicker que corresponde al nombre con que se


identificar al control en s; y se utiliza el atributo <<Header=Arrival
Date >> para establecer una etiqueta. El cdigo generar el siguiente
resultado:

28

Y se comportara de la siguiente manera:

A continuacin se muestra un ejemplo del uso de un DatePicker:


<StackPanel Orientation="Horizontal" Height="60">
<DatePicker x:Name="arrivalDatePicker" Header="Arrival Date"/>
<Button Content="Submit" Click="SubmitButton_Click"
Margin="5,0,0,-2" VerticalAlignment="Bottom"/>
<TextBlock x:Name="Control1Output"/>
</StackPanel>

El cdigo contiene un panel donde se crean tres objetos, uno de tipo


DatePicker, otro de tipo Button y el ltimo de tipo TextBlock. La
funcionalidad de este cdigo ser que el usuario al seleccionar una fecha

29

y presionar el botn se mostrar la fecha en el control TextBlock,


teniendo el cuidado de validar que la fecha sea posterior al momento de
seleccionar los valores.
private void SubmitButton_Click(object sender, RoutedEventArgs e)
{
if (VerifyDateIsFuture(arrivalDatePicker.Date) == true)
{
Control1Output.Text = string.Format("Thank you. Your arrival is set
for {0}.",
arrivalDatePicker.Date.ToString("D"));
}
else
{
Control1Output.Text = "Arrival date must be later than today.";
}
}
private bool VerifyDateIsFuture(DateTimeOffset date)
{
if (date > DateTimeOffset.Now)
{
return true;
}
return false;
}
En el cdigo C# se utilizan dos funciones, una para verificar si la fecha
seleccionada es una fecha futura al momento de seleccionar los valores,
y la otra funcin sirve para obtener los valores seleccionados, enviarlos
a la funcin evaluadora VerifyDateIsFuture y devolver el resultado en
el TextBlock.

30

9.8.

TimePicker

El control TimePicker tiene muchas similitudes en su comportamiento y


forma con el control DatePicker, ambos utilizan 3 ComboBox por defecto,
los cuales a partir de las propiedades del mismo control pueden ser
modificados.
Para el caso del TimePicker, los ComboBox corresponden, el primero
para seleccionar la Hora, el segundo para seleccionar los Minutos y el
tercero para la fraccin horaria, es decir AM o PM y tal como lo dice su
nombre, su funcionalidad es permitir al usuario seleccionar una hora
especfica.
La forma de insertar un TimePicker con XAML se define con el siguiente
cdigo:
<TimePicker x:Name="arrivalTimePicker" Header="Arrival Time"/>

El cual genera el siguiente resultado:

Tal como el DatePicker, se utilizan los atributos X:Name y Header,


para

establecer

el

nombre

del

control

un

encabezado,

respectivamente.
El siguiente cdigo es un ejemplo de la utilizacin del TimePicker, se
presenta tanto el cdigo en XAML y el C# que realiza los procesos
indicados:
XAML
<StackPanel Orientation="Horizontal" Height="60">
<TimePicker x:Name="arrivalTimePicker" Header="Arrival Time"/>

31

<Button Content="Submit" Click="SubmitButton_Click"


Margin="5,0,0,-2" VerticalAlignment="Bottom"/>
<TextBlock x:Name="Control1Output"/>
</StackPanel>
C#
private void SubmitButton_Click(object sender, RoutedEventArgs e)
{
if (VerifyTimeIsAvailable(arrivalTimePicker.Time) == true)
{
Control2Output.Text = string.Format("Thank you. Your appointment
is set for {0}.",
arrivalTimePicker.Time.ToString());
}
else
{
Control2Output.Text = "Sorry, we're only open from 8AM to 5PM.";
}
}
private bool VerifyTimeIsAvailable(TimeSpan time)
{
// Set open (8AM) and close (5PM) times.
TimeSpan openTime = new TimeSpan(8, 0, 0);
TimeSpan closeTime = new TimeSpan(17, 0, 0);
if (time >= openTime && time < closeTime)
{
return true; // Open
}
return false; // Closed

32

10. Conclusin
Se avecina una nueva tendencia de desarrollo de software orientado
hacia los dispositivos mviles. Es importante incentivar como futuros
desarrolladores a conocer la nueva plataforma mvil de Microsoft por
medio de un diversos materiales que se pueden encontrar en la web,
respaldado con una base terica slida, para que tengan una alternativa
de recibir esta nueva tendencia y sacar provecho de ella.
Windows Phone es una plataforma mvil que actualmente se encuentra
subordinada gracias a Apple con IPhone, y Google con Android. Pero es
una plataforma que seguir en la lucha de este negocio ya que su
creador no dejar de ser el grande del software, y mientras permanezca
viva

en

el

mercado,

siempre

estar

disponible,

con

muchas

oportunidades de negocio para todo aquel interesado en adoptarla.


El enfoque del desarrollo del software comienza a evolucionar hacia
nuevas plataformas, la construccin de aplicaciones software para
equipos tradicionales tiende a reducirse, y ser superado por el auge de
los dispositivos mviles.
Microsoft es una corporacin muy exitosa en su campo, y el hecho de
que brinde facilidad de accesibilidad a sus plataformas de desarrollo,
quiere decir que tiene a su alrededor muchos competidores, y por eso le
urge que muchos desarrolladores conozcan sus plataformas, y para que
as, crezca ms y ms su tienda de aplicaciones. Lo que hace de esto, un
beneficio grande para el desarrollador de software.