Tutorial de WPF para principiantes

ยฟQuรฉ es WPF?

WPF es un marco para construir Windows Aplicaciones que permiten a los usuarios desarrollar interfaces de usuario ricas con animaciones 3D y colores intensos con una menor complejidad de cรณdigo. Es un motor de renderizado basado en vectores que utiliza la aceleraciรณn de hardware de las tarjetas grรกficas modernas, lo que hace que la interfaz sea mรกs rรกpida y altamente escalable. WPF significa Windows Presentaciรณn Foundation.

WPF puede considerarse como una evoluciรณn de WinForms. Produce un sistema de visualizaciรณn grรกfica fรกcil de operar para Windows. Ofrece una fรกcil separaciรณn entre la interfaz de usuario y la lรณgica empresarial.

Las aplicaciones WPF se pueden implementar en su sistema como un programa de escritorio independiente o alojarse como un objeto integrado en un sitio web.

ยฟPor quรฉ WPF?

Hay muchas razones para utilizar la plataforma WPF, algunas de las mรกs destacadas son:

  • Una plataforma ideal para usar si necesita trabajar con varios tipos de medios
  • WPF le permite crear una interfaz de usuario personalizada. Tambiรฉn le ayuda cuando necesita cargar parte de la interfaz de usuario o desea vincular datos XML.
  • Le permite aprovechar la gran biblioteca de clases .NET tal como estรก construida .NET
  • Independencia de resoluciรณn, por lo que las aplicaciones desarrolladas con WMF se pueden ejecutar en dispositivos mรณviles o en un monitor de 20 pulgadas
  • WPF se basa en DirectX en lugar de WinAPI. Ofrece el sistema grรกfico del ordenador cliente. Por tanto, ofrecer un mayor poder de renderizado grรกfico.
  • Admite un modelo de flujo de documentos que permite una calidad de diseรฑo de โ€œediciรณn de escritorioโ€
  • La apariencia y el comportamiento estรกn vagamente relacionados. Esto permite a los diseรฑadores y desarrolladores trabajar en dos modelos separados.
  • En el marco WMF, puede diseรฑar herramientas grรกficamente en documentos XML simples en lugar de analizar cรณdigo.
  • Le permite utilizar la aceleraciรณn de hardware para dibujar la GUI, para un mejor rendimiento

Historia de WPF

Windows 1.0 fue el primer entorno GUI de Microsoft. Funciona como una capa encima de DOS, apoyรกndose en los sistemas GDI y USER para la interfaz grรกfica y de usuario.

DirectX se introdujo en el aรฑo 1995 como un sistema de grรกficos de alto rendimiento. Estaba dirigido a juegos y otros entornos relacionados con grรกficos. A lo largo de los aรฑos, se han lanzado muchas versiones con Directx9 que proporcionan una biblioteca para usar con el cรณdigo mange.Net.

versiรณn WPF Aรฑo de lanzamiento Versiรณn .Net Versiรณn de Visual Studio Caracteristicas
3.0 2006 3.0 N/A Versiรณn inicial.
Sin embargo, el desarrollo de WPF se puede realizar con VS 2005.
3.5 2007 3.5 contra 2008 Modificaciรณn y mejoras en:
Modelo de aplicaciรณn, encuadernaciรณn, controles, documentos, anotaciones y elementos 3-D Ul.
3.5 SP1 2008 3.5 SP1 N/A Soporte de pantalla de presentaciรณn nativa. Nuevo control del navegador web, compatibilidad con sombreadores de pรญxeles DirectX.
4.0 2010 4.0 contra 2010 Nuevos controles: Calendario. Cuadrรญcula de datos, Selector de fechas. Multitรกctil y manipulaciรณn
4.5 2012 4.5 contra 2012 Tiempo de configuraciรณn mรกs rรกpido y rendimiento mejorado para efectos de mapa de bits. Nuevos controles: Calendario. Cuadrรญcula de datos, Selector de fechas.
Multitรกctil y manipulaciรณn
4.5.1 2013 4.5.1 contra 2013 Nuevo control de cinta
Nueva interfaz INotifyDataErrorlnfo
4.5.2 2014 4.5.2 NA Sin cambios importantes
Sin cambios importantes
4.6 2015 4.6 contra 2015 Soporte de ventana infantil transparente
Mejoras HDPI y tรกctiles

La รบltima versiรณn estable de WPF 5.0.6 que se lanzรณ en abril de 2021.

Caracterรญsticas de WPF

Caracterรญsticas de WPF
Caracterรญsticas de WPF
  • Documentos e impresiรณn
  • Seguridad, accesibilidad y localizaciรณn
  • Ofrece interoperabilidad con Windows Controles de formularios
  • Direct3D se utiliza en aplicaciones grรกficas donde el rendimiento es importante
  • Utiliza el hardware de la tarjeta de video para renderizar.
  • Los grรกficos basados โ€‹โ€‹en vectores le permiten escalar su aplicaciรณn sin pรฉrdida de calidad
  • WPF admite sistema de pรญxeles lรณgicos de punto flotante y color ARGB de 32 bits
  • Redefinir estilos y plantillas de control
  • Creaciรณn de fuentes internacionales a partir de fuentes compuestas
  • La representaciรณn de texto WPF le ayuda a aprovechar la tecnologรญa ClearType
  • Le permite utilizar la tรฉcnica de almacenamiento en cachรฉ de texto pre-renderizado en la memoria de video.
  • Enfoque basado en recursos para cada control
  • Los temporizadores de presentaciรณn son inicializados y administrados por WPF
  • Tambiรฉn se admite la relaciรณn entre vรญdeo y animaciรณn.
  • En WPF, un estilo es un conjunto de propiedades que deben aplicarse al contenido utilizado para la representaciรณn visual.
  • Las plantillas en WPF te ayudan a cambiar la Ul de tu documento
  • Los comandos son versiones de eventos mรกs abstractas y poco acopladas.
  • La compatibilidad con comandos de WPF reduce la cantidad de cรณdigo que necesitamos escribir

Siguiente en este WPF Tutorial de C #, aprenderemos sobre los tipos centrales y la infraestructura de WPF.

Tipos de nรบcleos e infraestructuras de WPF

Las clases en WPF se dividen en cuatro tipos diferentes:

  • Elemento de interfaz de usuario
  • MarcoElemento
  • elemento de contenido
  • Elemento de contenido del marco

Estas clases, conocidas como clases de elementos base, proporcionan la base para un modelo de composiciรณn de interfaces de usuario.

Las interfaces de usuario de WPF se componen de elementos ensamblados en una jerarquรญa de รกrbol. Se llama รกrbol de elementos. El รกrbol de elementos es una forma intuitiva de diseรฑar la interfaz de usuario. Es una estructura que le permite obtener la funciรณn de potentes servicios de interfaz de usuario.

XAML

El lenguaje de marcado de aplicaciones extensible, llamado "XAML" o "zammel", es una forma declarativa de definir interfaces de usuario.

Aquรญ estรก la definiciรณn XAML de un botรณn simple:

<Button
FontSize="16"
HorizontalAlignment="Center"
VerticalAlignment="Center"
>
Say Hello Guru99</Button>

Ventaja de usar el lenguaje XAML:

  • XAML separa la apariencia del front-end de la lรณgica del back-end
  • XAML es el mรฉtodo mรกs sencillo para representar interfaces de usuario
  • XAML funciona eficazmente con herramientas.

Controla

El marco WPF admite muchos controles รบtiles como:

  • Editar controles como TextoBox, ChequeBox, Boton de radio
  • Controles de lista como ListaBox, Vista de lista, Vista de รกrbol
  • Informaciรณn de usuario como etiqueta, WPF ProgressBar, informaciรณn sobre herramientas
  • Acciones como menรบ, botรณn y barra de herramientas
  • Apariencias como borde, imagen WPF y cuadro de visualizaciรณn
  • Cuadros de diรกlogo comunes como OpenFileDialog y PrintDialog.
  • Contenedores como TabContro, ScrollBar y GroupBox
  • Diseรฑos como DocPanel, StackPanel y Grid
  • Navegaciรณn como marco e hipervรญnculo

La apariencia de los controles se puede personalizar con estilos y plantillas sin programaciรณn. Tambiรฉn puede crear un control personalizado derivando una nueva clase a partir de una clase base adecuada.

Apariencia

WPF proporciona una funciรณn para personalizar la apariencia de su aplicaciรณn. Le permite configurar objetos y valores para cosas como fuentes, fondos, etc.

La funciรณn de estilos le permite estandarizar una apariencia especรญfica para todo el producto. Le permite reemplazar la apariencia predeterminada manteniendo su comportamiento predeterminado.

La plantilla de datos le permite controlar la visualizaciรณn predeterminada de los datos enlazados. Con la ayuda de temas, puede visualizar fรกcilmente los estilos del sistema operativo.

Diseรฑo y paneles

El diseรฑo le ayuda a controlar el posicionamiento y el tamaรฑo adecuados. Es parte del proceso de redacciรณn de la presentaciรณn para el usuario. El marco WPF facilita el proceso de diseรฑo y ofrece una mejor adaptabilidad de la apariencia de la interfaz de usuario.

La infraestructura de diseรฑo se ofrece en varias clases: 1) StackPanel 2) DockPanel 3) WrapPanel 4) Grid y 5) Canvas

DISEร‘O

WPF proporciona un sistema de grรกficos mejorado como

  • WPF utiliza unidades independientes del dispositivo, lo que permite la resoluciรณn y la independencia del dispositivo. Por lo tanto, cada pรญxel, que es independiente del dispositivo, se escala automรกticamente con el sistema de configuraciรณn de puntos por pulgada.
  • WPF utiliza double en lugar de float y admite una gama mรกs amplia de colores
  • El motor de grรกficos WPF estรก diseรฑado de tal manera que puede aprovechar el hardware de grรกficos cuando estรฉ disponible.

Documentos e impresiรณn

El marco WPF ofrece tres tipos de documentos:

  • Documentos fijos: Este tipo de documento admite WYSIWPresentaciรณn de YG.
  • Documentos de flujo: Le permite ajustar y redistribuir el contenido en funciรณn de variables de tiempo de ejecuciรณn, como el tamaรฑo de la ventana y la resoluciรณn del dispositivo.
  • Documentos XPS: Es una representaciรณn paginada de papel electrรณnico en formato basado en XML. XPS es un formato de documento multiplataforma y de cรณdigo abierto.

WPF permite un mejor control sobre el sistema de impresiรณn. Incluye impresiรณn remota y colas. Ademรกs, los documentos XPS se pueden imprimir directamente sin convertirlos a un formato de impresiรณn.

WPF Architectura

WPF es parte del marco .NET. Contiene cรณdigo administrado y no administrado. Los componentes importantes de la arquitectura de WPF se explican en la siguiente figura:

WPF Architectura
WPF Architectura

Componentes de la arquitectura WPF

  • PresentaciรณnMarco:Le ayuda a crear elementos de nivel superior como controles, estilos, diseรฑo, ventanas, etc.
  • PresentaciรณnCore: Contiene tipos base como UIElement, Visual de todos los controles y las formas se derivan en PresentationFramework.dll.
  • CLR: Hace que el proceso de desarrollo sea productivo al ofrecer caracterรญsticas como gestiรณn de la memoria, manejo de errores, etc.
  • Milcore: Milcore es parte del cรณdigo no administrado que ofrece una estrecha integraciรณn con DirectX.
  • DirectX: Es la API de bajo nivel que permite representar grรกficos de WPF. Las conversaciones DirectX interactรบan con los controladores y representan el contenido.
  • Usuario32: Es una API central que es ampliamente utilizada por muchos programas. Gestiona la memoria y la separaciรณn de procesos. User32 le ayuda a decidir quรฉ elemento se colocarรก y en quรฉ lugar de la pantalla.
  • kernel: La entrada se origina como una seรฑal en un controlador de dispositivo en modo kernel y se enruta al proceso correcto y al conectarse con Windows kernel y Usuario32.

Instalaciรณn de WPF

Consulte este enlace para instalar WPF https://www.guru99.com/download-install-visual-studio.html

A continuaciรณn, en este tutorial de la aplicaciรณn WPF, crearemos nuestro primer WPF.

ยฟCรณmo crear su primera aplicaciรณn WPF?

En este ejemplo de WPF, desarrollaremos una aplicaciรณn WPF bรกsica. Comencemos con la implementaciรณn sencilla siguiendo los pasos que se indican en los ejemplos de aplicaciones WPF que aparecen a continuaciรณn.

Paso 1) En Visual Studio, vaya a Archivo > Proyecto

Crea tu primera aplicaciรณn WPF

Paso 2) En la ventana del nuevo proyecto

  1. Seleccione la aplicaciรณn WPF
  2. Ingrese el nombre como "MyWPF"
  3. haga clic en Aceptar

Crea tu primera aplicaciรณn WPF

Paso 3) Visual Studio crea dos archivos de forma predeterminada

  • Archivo XAML (MainWindow.xaml)
  • Archivo CS (MainWindow.xaml.cs)

Crea tu primera aplicaciรณn WPF

El MainWindow.xaml tiene

  1. Una ventana de diseรฑo
  2. Archivo XAML

Crea tu primera aplicaciรณn WPF

En las ventanas XAML, las siguientes etiquetas se escriben de forma predeterminada

Crea tu primera aplicaciรณn WPF

La Cuadrรญcula es el primer elemento por defecto.

MainWindow.xaml.cs contiene el cรณdigo correspondiente detrรกs del archivo de diseรฑo XAML.

Crea tu primera aplicaciรณn WPF

Paso 4) En la caja de herramientas,

  1. Arrastrar textoBox elemento a la ventana de diseรฑo
  2. Un textoBox aparecerรก en la ventana de diseรฑo
  3. Verรกs el cรณdigo XAML para texto.Box adicional

Crea tu primera aplicaciรณn WPF

Paso 5) Cambie el texto a "Primer programa WPF".

Crea tu primera aplicaciรณn WPF

Paso 6) Haga clic en el botรณn de Inicio

Crea tu primera aplicaciรณn WPF

Paso 7) Verรก una ventana en Salida

Crea tu primera aplicaciรณn WPF

ยกFelicidades! Ha diseรฑado y creado su primera aplicaciรณn WPF. A continuaciรณn, en este tutorial de WPF para principiantes, veremos la diferencia entre WPF y WinForms.

WPF frente a WinForms

WPF WinForms
Es un marco mรกs nuevo, por lo que estรก mรกs en sintonรญa con los estรกndares actuales. Es mรกs antiguo, por lo que estรก mรกs probado y comprobado.
Es flexible y tiene muchas funciones. Puede diseรฑar aplicaciones muy ricas sin codificar ni comprar controles. No tan rico en funciones
Desarrolladores de 3rd Los controles del partido se centran en la compatibilidad con WPF, ya que es el futuro. Hay muchos controles de terceros que puedes comprar u obtener de forma gratuita.
XAML le permite crear y editar su GUI fรกcilmente. Permite dividir el trabajo entre un diseรฑador (XAML) y un programador (C#, ASP.net, etc.). In Windows Forma todo el cรณdigo escrito en un solo lugar.
WPF puede crear interfaces de usuario para ambos Windows aplicaciones y aplicaciones web como Silverlight y XBAP. No hay tal apoyo
El conjunto de controles integrados de WPF es limitado Los controles integrados son muy potentes

Tipo de aplicaciones creadas con WPF

  • WPF estรก intentando reemplazar los formularios web y los formularios de Windows: las aplicaciones se pueden crear para ejecutarse en un navegador o en una ventana independiente.
  • Windows Los formularios y las pรกginas WPF pueden coexistir en la misma aplicaciรณn
  • Puede desarrollar aplicaciones de pรกgina/ventana.

Guรญa rรกpida

  • El formulario completo de WPF es Windows Presentaciรณn Foundation
  • Es una plataforma ideal para usar si necesita tratar con varios tipos de medios.
  • Windows 1.0 fue el primer entorno GUI de Microsoft que estaba trabajando en DOS y confiando en los sistemas GDI y USER
  • WPF en .NET ofrece interoperabilidad con Windows Controles de formularios
  • WPF se dividen en cuatro tipos diferentes como UIElement, FrameworkElement ContentElement y FrameworkContentElement
  • Los componentes mรกs importantes de parte de la arquitectura WPF son PresentationFramework, PresentationCore, CLR, Milcore, DirectX, User32 y Kernel.
  • WPF es un marco mรกs nuevo en comparaciรณn con WinForms, por lo que estรก mรกs en sintonรญa con los estรกndares actuales.
  • Windows Los formularios y las pรกginas WPF pueden coexistir en la misma aplicaciรณn

Resumir este post con: