Featured Posts

Diplomado de desarrollo de aplicaciones para Windows Phone 7.1–LatinoaméricaDiplomado de desarrollo de aplicaciones para Windows... Los invito cordialmente a que se inscriban al Diplomado de desarrollo de aplicaciones para Windows Phone 7.1, impulsado por Microsoft México para todo el mundo!  Completamente...

Readmore

Nueva carrera en Microsoft Virtual Academy: Windows Phone 7.1 (Mango)Nueva carrera en Microsoft Virtual Academy: Windows... Tengo el gusto de darles a conocer la disponibilidad de una nueva carrera en el Microsoft Virtual Academy (MVA): La carrera de Windows Phone 7.1 Mango. Esta es la descripción...

Readmore

Nueva carrera en Microsoft Virtual Academy: Silverlight 4Nueva carrera en Microsoft Virtual Academy: Silverlight... ¿Eres estudiante de Microsoft Virtual Academy (MVA)? Tengo el gusto de anunciarles oficialmente el lanzamiento de la nueva carrera de Silverlight 4 para esta plataforma educativa. La...

Readmore

Rodrigo Díaz Concha Rss

Infográfico: Retrospectiva de Windows Phone en 2011

Posted on : 24-01-2012 | By : Rodrigo | In : General, Windows Phone 7.1

Tags:

0

Por si no lo habían visto ya, en el blog de desarrolladores de Windows Phone publicaron el siguiente infográfico que muestra una retrospectiva bastante interesante acerca de esta plataforma.

5383.WP-Marketplace-Opportunity-infographic-r09b-011112_thumb_57B52915

Espero les sea de utilidad.

Salu2!

Inauguración de MetroLatam.net

Posted on : 24-01-2012 | By : Rodrigo | In : Conferencias, MetroLatam, MVP

Tags: , , ,

0

logo3Los invito cordialmente al día de mañana a la inauguración oficial de la comunidad MetroLatam.net: la primera comunidad en Español de Aplicaciones Metro y Windows 8 para desarrolladores. 

Esta inauguración se llevará a cabo el día de mañana miércoles 25 de Enero por medio de Live Meeting a las 11am hora de la Ciudad de México (-06:00 GMT).

 

MetroLatam.net es la Primera Comunidad en Español de Aplicaciones Metro y Windows 8 para Desarrolladores. Ven a la inauguración de esta comunidad en donde podrás conocer cuáles son sus objetivos y cómo puedes participar. Nos acompañarán Fernando García Loera, MVP Lead para Latinoamérica, con el tema de Reputación Digital y Eduardo Mangarelli, Director de DPE para Latinoamérica, con el tema de Windows 8 y su oportunidad para Desarrolladores Latinoamericanos. ¡Los esperamos!

La reunión se llevará a cabo el próximo miércoles 25 de Enero 2011, a las 11am hora de México (-06:00 GMT), 12:00pm hora de Bogotá/Lima/Quito, 2pm hora de Buenos Aires.

Para entrar a la reunión, usa el siguiente vínculo: https://www.livemeeting.com/cc/mvp_no_voip/join?id=QFT626&role=attend

Agenda

Rodrigo Díaz Concha, Silverlight MVP, MetroLatam.net “¿Qué es MetroLatam.net y cómo participar?”
Fernando García Loera, MVP Lead para Latinoamérica, Microsoft Corporation “Reputación Profesional y el Programa Microsoft MVP”
Eduardo Mangarelli, Director de DPE para Latinoamérica, Microsoft Corporation “Windows 8 y su oportunidad para Desarrolladores Latinoamericanos”
    Sesión de Preguntas y Respuestas

 

¡Los esperamos!

Desplegando un ChildWindow en objetos Window en Silverlight 5

Posted on : 16-01-2012 | By : Rodrigo | In : Silverlight 5

Tags:

3

Silverlight 5 cuenta con muchas características enfocadas principalmente a la construcción de aplicaciones de negocio, una de ellas es la creación de Ventanas de Sistema.

Sin embargo, si necesitas mostrar un ChildWindow dentro de una ventana creada dinámicamente, el comportamiento que obtendrás tal vez no es el esperado, y es que el ChildWindow se mostrará en la raíz de la aplicación (comunmente MainPage) y no en la ventana nueva en donde estás ejecutando el código.

Por ejemplo, en la siguiente figura la aplicación crea la ventana de la izquierda…

SNAGHTML33a0cdc

…pero al crear el objeto ChildWindow dentro de la ventana en donde esperas que se despliegue:

SNAGHTML3416af3

Este comportamiento no es el esperado ¿cierto?

image

En este artículo explicaré cómo puedes obligar que el ChildWindow se dibuje adecuadamente en la ventana que le corresponda.

El proyecto

Iniciaremos creando un nuevo proyecto de Silverlight 5, utilizando la plantilla “Silverlight Application”, y configuraremos el proyecto de Silverlight para que la aplicación pueda ejecutar en Confianza Elevada y fuera del navegador.

Agregaré un nuevo control de usuario llamado WindowContent el cual me servirá para establecerlo como el contenido para el objeto de tipo Window que crearemos.  Adicionalmente a esto, agregaré un nuevo ChildWindow llamado ChildWindow1.  El contenido del ChildWindow no será importante ya que simplemente nuestro objetivo será abrirlo en una ventana dinámica. 

En la siguiente figura podrás observar el proyecto de Silverlight completoimage

En WindowContent, modificaremos su constructor para poder recibir un objeto de tipo Window.  Este objeto lo guardaremos en una variable a nivel de clase llamada window:

Window window;
public WindowContent(Window window)
{
    InitializeComponent();
    this.window = window;
}

 

Además, agregaremos un botón a WindowContent que nos servirá para desplegar efectivamente el ChildWindow deseado (ChildWindow1).  Es aquí en donde está la clave de la solución: el método SetWindow de la clase Popup.

Método Popup.SetWindow()

La clase Popup en Silverlight incluye un nuevo método llamada SetWindow.  Este método nos permite establecer la ventana que deseamos que actúe como padre del objeto Popup.  Pero ¿de dónde obtenemos en este escenario un objeto Popup?

Resulta que al ejecutar el método Show() del objeto ChildWindow, la propiedad Parent será un objeto de tipo Popup.  Debido a esto, podemos obtener una referencia a él y posteriormente utilizar el método SetWindow, pasando como parámetro el objeto Window que obtuvimos anteriormente a través del constructor.  El único requisito es que el objeto Popup no esté abierto, por lo que será necesario primero ocultarlo, establecer la ventana y finalmente mostrarlo.  El siguiente código muestra el manejador Click del botón:

private void button1_Click(object sender, RoutedEventArgs e)
{

    var cw = new ChildWindow1();
    cw.Show();

    var popup = cw.Parent as Popup;
    popup.IsOpen = false;
    popup.SetWindow(window);
    popup.IsOpen = true;
}

 

Ahora, en MainPage agregaremos un botón, y en su manejador del evento Click escribiremos el código para crear un nuevo objeto de tipo Window, estableciendo como contenido de esta nueva ventana una nueva instancia de WindowContent.  Recuerda que deberemos pasar como parámetro en el constructor el objeto de tipo Window relacionado:

private void button1_Click(object sender, RoutedEventArgs e)
{
    var window = new Window()
    {
        Width= 800,
        Height=500,
        Title = "Nueva ventana",
    };

    var windowContent = new WindowContent(window);
    window.Content = windowContent;

    window.Show();
}

 

Gracias a esto, la nueva ventana podrá desplegar dentro de ella misma el ChildWindow, tal y como lo muestra la siguiente figura:

SNAGHTML365086a

Nota: Aun con esta técnica, la raíz visual de la aplicación, es decir, el objeto MainPage será deshabilitado cuando el ChildWindow esté siendo desplegado en la ventana creada dinámicamente.  Si en tu aplicación esto resulta inconveniente, tal vez desees manejar el evento IsEnabledChanged y establecer el valor de la propiedad IsEnabled a un valor fijo de true, o basado en alguna otra lógica.  El siguiente fragmento de código demuestra esto:

//En MainPage
this.IsEnabledChanged += (s, a) => this.IsEnabled = true;

 

Resumen

Las Ventanas de Sistema en Silverlight 5 sin duda alguna es una de las características más útiles en las aplicaciones de negocio.  Sin embargo, al combinarlas con los ChildWindow tienen un comportamiento inesperado, pero gracias al método SetWindow de la clase base Popup, podemos obligar a que los ChildWindow se muestren en la ventana adecuada en nuestras aplicaciones.

Salu2!

Encuesta: Temas para Módulos Avanzados en MVA

Posted on : 03-01-2012 | By : Rodrigo | In : MVP, Silverlight 4, Windows Phone 7.1

Tags: , , , , , ,

2

QuestionEstoy preparando los temas para los módulos avazados de las carreras de Silverlight y Windows Phone en Microsoft Virtual Academy (MVA).  Por este motivo y para poder conocer el interés de los diversos temas que se pueden tocar, he creado las siguientes encuestas, las cuales tienen como objetivo el que me ayuden a conocer qué temas se deberían incluir y que otros, tal vez, no son tan necesarios.

Carrera de Silverlight

 

Carrera de Windows Phone

Las encuestas estarán abiertas durante algunas semanas.  Con esto me ayudarán a definir los temas y posteriormente abrir los nuevos módulos en MVA.

¡Les agradezco de antemano su valiosa colaboración!

Silverlight Tour–Medellín, Colombia (07 al 09 de Febrero 2012)

Posted on : 03-01-2012 | By : Rodrigo | In : Silverlight 5, Silverlight Tour Workshop

Tags: , , , , , , , , ,

5

Tengo el gusto de anunciarles que SLT_MedellinEl Silverlight Tour: El curso que da la vuelta al Mundo va de nueva cuenta a la hermosa y amable ciudad de Medellín, Colombia.  El curso se impartirá del 07 al 09 de Febrero 2012 y es una de las primeras fechas públicas que ya contempla el material completamente actualizado a Silverlight 5 RTW, por lo que si están interesados(as) les sugiero se registren a la brevedad ya que todos los cursos del Silverlight Tour tienen cupo limitado.

El Silverlight Tour es un curso de 3 días, de cerca de 27 horas, acerca de Silverlight 5 con un enfoque en la construcción de Aplicaciones de Negocio con esta plataforma.

También les recuerdo que cada asistente del curso recibe gratuitamente una licencia de la suite de controles RadControls for Silverlight de nuestros socios Telerik, con un valor en el mercado de 999 USD!!!

Se pueden registrar en esta dirección.  Hay una promoción vigente que vence el 15 de Enero 2012!

Allá nos vemos!!!