Lo primero que tenemos que hacer cuando queremos desarrollar una aplicación de escritorio con el framework .NET, es configurar la ventana. El control de WPF Window, será el primer control que debamos adaptar a nuestro proyecto. En este artículo te voy a describir las propiedades más importantes de este control.
Si quieres profundizar más en las aplicaciones con WPF, no te pierdas los cursos del Campus de Programarfacil.
WPF Window
WPF es la pieza más grande que podemos encontrar dentro del framework .NET. Abarca muchas clases y propiedades. En alguna ocasión he leído que incluso toda esta parte es igual de grande que el resto. Quizás esto nos de unas nociones de lo importante que es dentro del framework .NET.
Pero como sucede con todo en esta vida, hay que empezar por algún sitio. Un buen punto de partida es configurar la ventana principal de nuestra aplicación. En este artículo vamos a ver 12 propiedades que debemos conocer para hacer más atractiva nuestra aplicación.
Antes de comenzar vamos a ver que es lo que nos crea Visual Studio cuando creamos una WPF Window. Mira el código que te dejo a continuación.
1 2 3 4 5 6 7 8 9 10 11 12 |
<Window x:Class="MiAplicacion.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:AplicacionMultimedia" mc:Ignorable="d" Title="Window1" Height="300" Width="300"> <Grid> </Grid> </Window> |
Class
Este atributo le dice al XAML que clase debe utilizar. Un WPF Window está compuesto por dos archivos. El archivo XAML (.xaml) que es el que vemos arriba y un archivo de código (.cs), que es el código que hay por debajo del XAML, código subyacente.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
using System.Windows; namespace AplicacionMultimedia { /// <summary> /// Interaction logic for Window1.xaml /// </summary> public partial class Window1 : Window { public Window1() { InitializeComponent(); } } } |
Para que puedan estar relacionados, debemos indicar en el XAML que clase utilizar. Visual Studio ha creado esta clase también por nosotros. En el archivo .cs daremos funcionalidad a nuestra pantalla.
Referencias
Si volvemos al archivo XAML que nos ha creado Visual Studio, comprobamos que además de la clase hay definiciones de espacio de nombres. Esto son referencias a otras librerías que vamos a necesitar para ir diseñando nuestra aplicación.
1 2 3 4 5 |
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:AplicacionMultimedia" |
Title
Esta propiedad establece u obtiene el título de la ventana. Aquí no estamos hablando de SEO ni posicionamiento en buscadores. El título es el nombre de nuestra aplicación. El único consejo que te puedo dar con respecto a qué poner es que, pongas lo que quieras, siempre dentro de un límite.
Width y Height
Estas propiedades establecen u obtienen el ancho y el alto de la ventana. No quiere decir que sean valores fijos. Solo indican que ese es el tamaño con el que se abrirá la aplicación. Dependerá de algunas propiedades que veremos a continuación el que podamos hacerla más grande o más pequeña.
MinWidth, MinHeight, MaxWidth y MaxHeight
Como su propio nombre indica, estas propiedades nos van a permitir acotar el tamaño de la ventana por arriba y por abajo. WPF Window tiene muchas propiedades que nos facilitan su diseño. No existe un único camino para conseguir lo que queremos hacer. Podemos conseguir lo mismo con diferentes configuraciones.
1 2 3 4 |
MinWidth="300" MinHeight="300" MaxWidth="600" MaxHeight="600" |
ResizeMode
Esta propiedad va a establecer cómo podemos cambiar el tamaño del WPF Window. Puede tener cuatro valores posibles que determinarán su comportamiento.
- NoResize: no permite cambiar el tamaño de la venta. Esta siempre se mantendrá fija.
- CanMinimize: solo permite minimizar la ventana y maximizar desde la barra de tareas. El botón maximizar se muestra pero está deshabilitado.
- CanResize: esta es la opción por defecto. Permite modificar de manera libre el tamaño de la ventana.
- CanResizeWithGrip: esta opción es igual que la anterior. La diferencia es que nos muestra un control de ajuste de tamaño en la esquina inferior derecha.
1 |
ResizeMode="CanResizeWithGrip" |
SizeToContent
Con esta propiedad podemos indicar cómo se adapta la ventana al contenido dentro de ella. Puede tener cuatro valores posibles.
- Manual: es el valor por defecto. La ventana no cambia de tamaño según su contenido.
- Width: la ventana cambia de tamaño según el contenido solo en ancho.
- Height: la ventana cambia de tamaño según el contenido solo en alto.
- WidthAndHeight: la ventana cambia de tamaño según el contenido tanto en alto como en ancho.
1 |
SizeToContent="WidthAndHeight" |
WindowStartupLocation
Esta propiedad nos permite indicar donde se sitúa la ventana cuando arranca la aplicación o cuando una ventana es llamada por otra. Tiene 3 valores posibles.
- Manual: las posición de la ventana vendrá determinada por las propiedades left y top (izquierda y arriba) de la ventana.
- CenterScreen: la ventana se situará en el centro de la pantalla. Si hubiera más de una pantalla, se situará en el centro de la pantalla donde se encuentre el ratón.
- CenterOwner: la ventana se situará en el centro de la pantalla padre es decir, la pantalla que la ha lanzado. Esta propiedad solo vale para estos casos concretos.
1 |
WindowStartupLocation="CenterScreen" |
WindowState
Esta propiedad nos permite indicar el estado de la ventana cuando arranca la aplicación. Tiene 3 valores posibles.
- Normal: posición normal. Dependerá de la configuración del tamaño de la ventana.
- Maximized: ventana maximizada.
- Minimized: ventana minimizada.
1 |
WindowState="Maximized" |
Icon
Permite definir un icono que se mostrará en la barra de título de la ventana.
1 |
Icon="MiAplicacion.ico" |
Y hasta aquí las propiedades más importantes de WPF Window.