[WPF] Layout (2ª Parte)

Continuando con el anterior artículo, en éste último vamos a ver los paneles “Grid” , “WrapPanel” y “Canvas”

  • Grid

Éste panel permite situar los controles en una tabla de filas y columnas. En cada casilla, podemos colocar más de un control.

Grid

<Grid>

        <!--Definimos las columnas que vamos a usar-->

        <Grid.ColumnDefinitions>

            <ColumnDefinition Width="Auto"/>

            <ColumnDefinition Width="Auto"/>

            <ColumnDefinition Width="Auto"/>

        </Grid.ColumnDefinitions>

        

        <!--Definimos las filas que vamos a usar-->

        <Grid.RowDefinitions>

            <RowDefinition Height="Auto"/>

            <RowDefinition Height="Auto"/>

        </Grid.RowDefinitions>

        

        <Image Grid.Column="0" Grid.Row="0"

               Source="/WpfApplication1;component/Images/1.png"/>

        <Image Grid.Column="1" Grid.Row="0"

               Source="/WpfApplication1;component/Images/2.png"/>

        <Image Grid.Column="2" Grid.Row="0"

               Source="/WpfApplication1;component/Images/3.png"/>

    <Image Grid.Column="0" Grid.Row="1"

           Source="/WpfApplication1;component/Images/4.png"/>

    <Image Grid.Column="1" Grid.Row="1"

           Source="/WpfApplication1;component/Images/5.png"/>

    <Image Grid.Column="2" Grid.Row="1"

           Source="/WpfApplication1;component/Images/6.png"/>

</Grid>

  • WrapPanel

Agrupa los elementos de izquierda a derecha o de arriba abajo, pero a diferencia del StackPanel, al llegar al final cambia de fila.

WrapPanel

<WrapPanel Orientation="Horizontal">

    <Image Width="75" Source="/WpfApplication1;component/Images/1.png"/>

    <Image Width="75" Source="/WpfApplication1;component/Images/2.png"/>

    <Image Width="75" Source="/WpfApplication1;component/Images/3.png"/>

    <Image Width="75" Source="/WpfApplication1;component/Images/4.png"/>

    <Image Width="75" Source="/WpfApplication1;component/Images/5.png"/>

    <Image Width="75" Source="/WpfApplication1;component/Images/6.png"/>

</WrapPanel>

  • Canvas

En el panel Canvas, los elementos se sitúan según las coordenadas que se le indiquen

Canvas

<Canvas>

     <Image Source="/WpfApplication1;component/Images/1.png"

           Canvas.Top="0" Canvas.Left="0"/>

     <Image Source="/WpfApplication1;component/Images/2.png"

           Canvas.Top="100" Canvas.Left="100"/>

     <Image Source="/WpfApplication1;component/Images/3.png"

           Canvas.Top="0" Canvas.Left="200"/>

</Canvas>

 

Si queréis obtener más información sobre los distintos paneles de WPF os recomiendo que visitéis la web de tutoriales de Christian Mosers :

WPFTutorial.net –> Layout

 

<— [WPF] Layout (1ª Parte)

[WPF] Layout (1ª Parte)

Para muchos de los que estamos empezando con WPF, es interesante conocer los distintos tipos de paneles de diseño que existen para insertar elementos en dichos paneles.

  • StackPanel

El StackPanel es un panel de diseño simple y útil. Apila sus elementos de arriba a abajo / izquierda a derecha, según su orientación (horizontal y vertical). Si no se indica nada, la alineación por defecto será vertical.

StackPanelVertical

<StackPanel>

    <TextBlock FontSize="26" HorizontalAlignment="Center">

        1

    </TextBlock>

    <TextBlock FontSize="26" HorizontalAlignment="Center">

        2

    </TextBlock>

    <TextBlock FontSize="26" HorizontalAlignment="Center">

        3

    </TextBlock>

    <TextBlock FontSize="26" HorizontalAlignment="Center">

        4

    </TextBlock>

</StackPanel>

StackPanelHorizontal

<StackPanel Orientation="Horizontal">

    <TextBlock FontSize="26" HorizontalAlignment="Center">

        1

    </TextBlock>

    ...

</StackPanel>

  • DockPanel

El DockPanel proporciona que un elemento se acople a la izquierda, a la derecha, al centro, arriba o abajo.

DockPanel

<DockPanel>

    <Button Content="Arriba" DockPanel.Dock="Top"/>

    <Button Content="Abajo" DockPanel.Dock="Bottom"/>

    <Button Content="Izquierda" DockPanel.Dock="Left"/>

    <Button Content="Derecha" DockPanel.Dock="Right"/>

    <Button Content="Botón"/>

</DockPanel>
[WPF] Layout (2ª Parte) -->

Deshabilitar el plug-in PDF de Chrome

Sin títuloSe que a muchas personas les resulta bastante útil que Google Chrome tenga su propio plug-in para ver archivos PDF, pero a mi en algunas ocasiones me resulta molesto. Uno de los inconvenientes que le pongo yo es que en los PDF incrustados que hay en algunas webs (en mi caso están incrustados en el Moodle de la Universidad) no se pueden descargar.

Para toda la gente que quiera deshabilitar el plug-in de Chrome y volver al de Abode, el proceso es muy sencillo.

  1. Introducir “about:plugins” en la barra de direcciones para ver todos los plug-ins que hay habilitado.
  2. Buscamos “Chrome PDF Viewer” y le damos a “Inhabilitar”image

Una vez hecho esto, ya volveremos a ver los documentos PDF con el plug-in de Adobe.

Realizando algunas tareas básicas de WP7 desde nuestra APP

En algunos programas, siempre surge la necesidad de que al pulsar un botón se realice una llamada de teléfono, se envíe un email a una dirección predeterminada o a elegir por nosotros, se realice una búsqueda…

Con Windows Phone 7 esto es muy sencillo. Algunas de las tareas que podemos realizar son:

  • Camera Capture Task
  • Email Address Chooser Task
  • Compose an email Task
  • MarketPlace Search Task
  • MarketPlace Hub Task
  • MediaPlayer Launcher
  • Phone Call Task
  • Phone Number Chooser Task
  • Photo Chooser Task
  • Search Task
  • SMS Compose Task
  • WebBrowser Task

Todas ellas pertenecientes al namespace: Microsoft.Phone.Tasks

Yo para este ejemplo voy a usar PhoneCallTask, EmailComposeTask, SmsComposeTask, SearchTask y MarketplaceSearchTask. Para ello, he creado un proyecto de Windows Phone 7 con 5 botones y a cada uno le he asignado su correspondiente evento:

private void btLlamada_Click(object sender, RoutedEventArgs e)

{

    PhoneCallTask task = new PhoneCallTask();

    task.PhoneNumber = "123456789";

    task.DisplayName = "Ejemplo";

    task.Show();

}

private void btEmail_Click(object sender, RoutedEventArgs e)

{

    EmailComposeTask task = new EmailComposeTask();

    task.To = "ejemplo@miguelangelcv.es";

    task.Subject = "Esto es un ejemplo";

    task.Body = "Cuerpo del mensaje ... ";

    task.Show();

}

private void btSMS_Click(object sender, RoutedEventArgs e)

{

    SmsComposeTask task = new SmsComposeTask();

    task.To = "123456789";

    task.Body = "Hola! :)";

    task.Show();

}

private void btBuscar_Click(object sender, RoutedEventArgs e)

{

    SearchTask task = new SearchTask();

    task.SearchQuery = "Albacete";

    task.Show();

}

private void btMarketPlace_Click(object sender, RoutedEventArgs e)

{

    MarketplaceSearchTask task = new MarketplaceSearchTask();

    task.ContentType = MarketplaceContentType.Applications;

    task.SearchTerms = "Bye Bye Brain";

    task.Show();

}

Si queréis ver como utilizar otras “task”, aquí os dejo el enlace a un post en el que utilizan muchas de ellas:

Task System in Windows Phone 7

Windows Forms: Creando nuestra primera aplicación

Para empezar a trabajar, necesitamos tener instalado Visual C# Express 2010. Esta versión es totalmente gratuita y podéis encontrarla aquí. La instalación es muy sencilla pero una vez que se ha instalado debemos registrarlo, ya que si no lo hacemos, a los 30 días dejará de funcionar.

Para registrarlo es muy sencillo, abrimos Visual C# Express y hacemos clic en el menú “Help” y después a “Register Product”. A continuación nos saldra una ventana como la siguiente



Aquí debemos hacer clic en “Obtain a registration key online” y rellenar un formulario. Una vez rellenado dicho formulario, recibiremos en nuestro correo electrónico la clave de registro que hay que introducir en esta ventana.

Una vez hecho todo esto, ya tendremos Visual C# Express 2010 listo para trabajar.

Ahora que está todo listo, vamos a crear el proyecto en el que desarrollaremos nuestra primera aplicación. Para ello, hacemos clic en el menú “File” y en “New Proyect”.  En la ventana que nos aparecerá a continuación, debemos elegir “Windows Forms Application” e introducir el nombre de dicho proyecto en la parte inferior (yo lo llamaré “HolaMundo”).

Ya con el proyecto creado nos encontraremos con una nueva pantalla en la que distinguimos tres zonas. En la zona central, nos aparecerá una ventana donde agregaremos los componentes y escribiremos el código de nuestra aplicación. En la parte izquierda nos encontraremos con la caja de herramientas que contiene todos los controles que podemos usar. Y por último, en la parte derecha nos encontraremos con el explorador de archivos en la parte superior y la ventana de propiedades en la parte inferior. Si alguno de estas cajas no os aparece, debéis ir al menú “View” -> “Other Windows” y comprobar que tenéis seleccionadas “Properties Window”, “Solution Explorer” y “Toolbox”

Una vez terminado la pequeña introducción a Visual C# Express 2010, vamos a crear nuestra primera aplicación. Va a ser algo sencillo: Un botón que muestre una nueva ventana con un mensaje. Para ello en caja de herramientas buscamos el control “Button” (Botón) al formulario que tenemos en la parte central y una vez situado, le hacemos doble clic. Ahora nos llevara al editor en el cual nos habrá aparecido un nuevo método llamado “button1_Click”, que sera llamado cuando hagamos clic en el boton. Por último añadimos:

MessageBox.Show(“Hola Mundo!”);

Con esto lo que hacemos es que cada vez que hagamos clic sobre el botón, nos saldrá una nueva ventana con el texto “Hola Mundo!”

Así es como os debe quedar el código:


También podéis cambiar el texto del botón haciendo clic sobre el botón y buscando la propiedad “Text” en la ventana de propiedades que esta situada abajo a la izquierda. Lo mismo si queréis cambiar el nombre a la ventana, seleccionáis la ventana en el editor y buscáis la propiedad “Text”. Ahí podéis poner “Mi primera aplicación” en vez de “Form1″

Espero que para los que estáis empezando os sirva de ayuda 🙂

Código fuente

Atajos con la tecla Windows

En algunas ocasiones resulta más rapido usar el teclado en vez de el ratón. El otro día me encontré con algunas funciones útiles utilizando la combinación Imagen de la tecla del logotipo de Windows + [Tecla]. Aquí dejo las que conozco. Si alguien conoce alguna otra que no esté listada, dejadla en un comentario y la añado a la lista 🙂

Imagen de la tecla del logotipo de Windows + E = Muestra la ventana “Equipo”

Imagen de la tecla del logotipo de Windows + R = Ejecutar…

Imagen de la tecla del logotipo de Windows + Barra Espaciadora = Vista previa del escritorio

Imagen de la tecla del logotipo de Windows + D = Escritorio

Imagen de la tecla del logotipo de Windows + F = Buscar

Imagen de la tecla del logotipo de Windows + G = Muestra los Gadgets

Imagen de la tecla del logotipo de Windows + L = Bloquea el equipo

Imagen de la tecla del logotipo de Windows + X = Centro de Movilidad

Imagen de la tecla del logotipo de Windows + T = Muestra las miniaturas de los programas en ejecución de la barra de tareas. Si se vuelve a pulsar la combinación, cambia de miniatura.

Imagen de la tecla del logotipo de Windows + U = Centro de accesibilidad

Imagen de la tecla del logotipo de Windows + P = Opciónes para presentación con proyector

Imagen de la tecla del logotipo de Windows + [Num] = Abre el programa situado en la posición “x” en la barra de tareas.

Espero que os sean útiles

[NOTA: Funcionan para Windows 7]

Webcasts de Interés (Septiembre 2010)

Aquí os dejo algunos WebCast para este mes de Septiembre. Si surge algún otro, estad atentos ya que actualizare el Post 😉

Algoritmos de ordenación

Repasando algunos apuntes que tenía, me he encontrado con algunas cosas que no estaría mal recordar. Una de ellas son los algoritmos de ordenación.

En este post voy a explicar 3 algoritmos: ordenación por el método de la burbuja, ordenación por el método de inserción y ordenación por el método quicksort.

  • Método de la burbuja (Bubble sort)

El método de la burbuja consiste en comparar el primer elemento con el segundo, el segundo con el tercero, … , hasta que en una de las comparaciones ocurra que el primer elemento a comparar es mayor que el siguiente. En tal caso, se intercambian los valores y se sigue con la comparación. Al llegar a la última comparación, se vuelve a empezar.  Este proceso se repite hasta que no se produzca ningún intercambio, o en el peor de los casos, hasta “n –1” vueltas (siendo n el número de elementos a comparar).

Ejemplo:

burbujaCódigo:

Archivo MetodoBurbuja.cs

  • Método de inserción (Insertion sort)

Este método consiste en insertar un elemento en la posición correspondiente con respecto a otros dos previamente ya ordenados.

Ejemplo: insertion Código:

Archivo MetodoInsercion.cs

  • Método Quicksort

El algoritmo basado en el método quicksort es el más eficiente de todos. Consiste en elegir un elemento al que llamaremos “pivot”, sobre el cual se van ordenando el resto de los elementos. Si es menor a la izquierda y si es mayor a la derecha. Una vez terminado el primer ciclo, se envían las listas izquierda y derecha de elementos situadas entre “pivot”. Este proceso se repite hasta que las listas enviadas sean de 1 solo elemento.

Ejemplo:

Código:

Archivo MetodoQuicksort.cs

   1:              for (int i = 1; i <= vector.Length; i++)
   2:              {
   3:                  cambio = false;
   4:                  for (int j = 0; j < vector.Length - i; j++)
   5:                  {
   6:                      if (vector[j] >= vector[j + 1])
   7:                      {
   8:                          temp = vector[j + 1];
   9:                          vector[j + 1] = vector[j];
  10:                          vector[j] = temp;
  11:                          cambio = true;
  12:                      }
  13:                  }
  14:                  if (cambio == false) break;
  15:              }

[Windows 7]: Ejecución de aplicaciones en “Modo Windows XP”

Ultimamente, unos compañeros de clase me han estado preguntando sobre qué es y cómo funciona el Modo Windows XP y me he decidido a escribir un post para hablar sobre él.

El Modo Windows XP es una nueva característica de Windows 7 que nos permite ejecutar programas antiguos, tal y como si lo estuviéramos haciendo en un equipo con Windows XP gracias a la Virtualización.

Requisitos

Para trabajar con el modo Windows XP, necesitamos cumplir con los siguientes requisitos:

1) Disponer de una versión Professional, Ultimate o Enterprise de Windows 7

2) 1GB de memoria RAM adicional.

3) 15GB de espacio libre en nuestro disco duro.

4) Un procesador compatible con virtualización (Para saber si tu procesador es compatible, mira este artículo de Wikipedia , o usar unas aplicaciones de Intel o AMD para identificar las características de vuestro procesador).

5) Windows Virtual PC.

Instalación

Los archivos que necesitamos comenzar la instalación son: Windows Virtual PC y la Máquina Virtual de Windows XP, que podemos encontrarlos en:

http://www.microsoft.com/windows/virtual-pc/default.aspx

Una vez que estemos en dicha página, necesitamos indicar la versión de Windows 7 con la que estamos trabajando (distinguiendo también entre 32 y 64 bits) y el idioma.

Cuando tengamos ambos archivos descargados en nuestra máquina comenzamos por instalar “Windows Virtual PC” y después “Windows XP Mode” (tras la instalación de Virtual PC, debemos reiniciar el equipo).

Una vez instalados, se nos creará una carpeta llamada “Windows Virtual PC” con la aplicación y el “Modo Windows XP”.

Llegados a este punto ya tenemos todo hecho. Ahora vamos a ver cómo instalar un programa para ejecutarlo en Modo Windows XP

Arrancamos “Windows XP Mode” y esperamos a que termine de cargar. Tras la carga, podemos ver que es el propio Windows XP en si (cargado en una máquina virtual).


En la parte de arriba de Virtual PC, tenemos una opción llamada “USB”. Si tuviéramos el programa a instalar en un disco duro externo o memoria USB, podemos incorporar dicha unidad a la maquina virtual para poder trabajar con ella. También podemos incorporar imágenes ISO (Ver menú “Herramientas” –> “Configuración” –> “Unidad de DVD”). Para instalar el programa debemos hacerlo como lo hemos hecho siempre (ejecutando el archivo .exe, introduciendo el CD/DVD…). Una vez instalada la aplicación, podemos cerrar Virtual PC.


Yo para este ejemplo voy a instalar TMPGEnc (un programa de edición de vídeo).

Una vez completada la instalación, si vamos al menú inicio de Windows 7 y a la carpeta “Windows Virtual PC”, nos aparecerá otra nueva carpeta llamada “Aplicaciones de Windows XP Mode” donde nos aparecerán las aplicaciones que instalemos en la máquina virtual de Windows XP. En caso de que instaléis la aplicación y no os aparezca el acceso directo en la carpeta de aplicaciones, reiniciar la máquina virtual desde el menú “Acción”.


Ahora cuando ejecutemos la aplicación nos aparecerá de la siguiente manera:


Como podemos ver en la imagen, distinguimos las aplicaciones ejecutadas en modo Windows XP porque aparecen con el estilo de ventana de éste.

Si tenéis alguna duda, no dudéis en preguntar 🙂

Curso gratuito de C# en PDF

Aquí os traigo el enlace a un curso de C# que ha hecho Rob Miles, un profesor del  Departamento de Informática de la csharpdevelopmentUniversidad de Hull (Reino Unido).

Esta hecho para aquella gente que quiere empezar a estudiar el lenguaje C# desde 0. Lo he ojeado por encima y tiene muy buena pinta, está actualizado a este año según su página web. Ya me contareis vosotros que os ha parecido.

Haced clic sobre el libro para descargarlo, ocupa 1.4MB y está en formato PDF.