Articulo de referencia

Fundación de presentaciones de Windows

{{cite web|url=https://github.com/dotnet/wpf/releases/tag/v8.0.5 |title=v8.0.5 |date=2023-05-14 |website=github.com|access-date=2023-05-30 }} "},"latest preview version":{"wt":"...

Windows Presentation Foundation ( WPF ) es un marco de interfaz de usuario gratuito y de código abierto para aplicaciones de escritorio basadas en Windows . Las aplicaciones WPF se basan en .NET y se desarrollan principalmente utilizando C# y XAML . [ 2 ]

Desarrollado originalmente por Microsoft , WPF se lanzó inicialmente como parte de .NET Framework 3.0 en 2006. En 2018, Microsoft lanzó WPF como código abierto bajo la licencia MIT . [ 3 ] El diseño de WPF y su lenguaje de diseño XAML han sido adoptados por otros marcos de interfaz de usuario, como UWP , .NET MAUI y Avalonia .

Descripción general

WPF emplea XAML , un lenguaje basado en XML , para definir y vincular diversos elementos de la interfaz, y utiliza C# para definir el comportamiento del programa. [ 4 ] Las aplicaciones WPF se implementan como programas de escritorio independientes.

WPF admite varios elementos comunes de la interfaz de usuario , como renderizado 2D/3D, documentos fijos y adaptativos , tipografía , gráficos vectoriales , animación en tiempo de ejecución y medios prerrenderizados. Estos elementos se pueden vincular y manipular en función de diversos eventos, interacciones del usuario y enlaces de datos . [ 5 ]

WPF se desarrolló bajo el nombre en clave "Avalon", como parte del modelo de programación WinFX para Windows "Longhorn" . En agosto de 2004, Microsoft anunció que los componentes de WinFX se adaptarían a Windows XP y Windows Server 2003. [ 6 ] Posteriormente se lanzó como parte de .NET Framework 3.0, una descarga gratuita para estos sistemas operativos. [ 7 ] Las bibliotecas de tiempo de ejecución de WPF se incluyen con todas las versiones de Microsoft Windows desde Windows Vista y Windows Server 2008. [ 8 ] [ 9 ]

En el evento Microsoft Connect del 4 de diciembre de 2018, Microsoft anunció el lanzamiento de WPF como proyecto de código abierto en GitHub . Se publica bajo la licencia MIT . Windows Presentation Foundation está disponible para proyectos que utilizan el marco de software .NET ; sin embargo, el sistema no es multiplataforma y aún solo está disponible en Windows. [ 3 ] [ 10 ]

Ejemplos de código

En WPF, las pantallas y otros elementos de la interfaz de usuario se definen mediante un par de archivos: un archivo XAML y un archivo C# asociado con la extensión .xml .xaml.cs, a menudo denominado "código subyacente". El archivo XAML define de forma declarativa el diseño, el contenido y otras propiedades del elemento de la interfaz de usuario, mientras que el archivo C# permite exponer los puntos de entrada de código para la interactividad. [ 4 ]

Un ejemplo básico de un programa interactivo "¡Hola, mundo! " podría crearse de la siguiente manera:

Ventana principal.xaml:

<Window x:Class= "WpfExample.MainWindow" xmlns= "http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x= "http://schemas.microsoft.com/winfx/2006/xaml" Title= "MainWindow" Height= "200" Width= "300" > <StackPanel Orientation= "Vertical" > <TextBlock Text= "¿Cuál es tu nombre?" /> <TextBox x:Name= "NameInputTextBox" /> <Button x:Name= "SubmitButton" Click= "SubmitButton_Click" > <TextBlock Text= "Enviar" /> </Button> <TextBlock x:Name= "ResultTextBlock" /> </StackPanel> </Window>

MainWindow.xaml.cs:

usando System.Windows ;espacio de nombres WpfExample { public partial class MainWindow : Window { public MainWindow () { InitializeComponent (); }private void SubmitButton_Click ( object sender , RoutedEventArgs e ) { string name = this.NameInputTextBox.Text ; this.ResultTextBlock.Text = $ " Hola { name } ! " ; } } }

En el ejemplo anterior, un elemento de interfaz de usuario MainWindowse declara como una subclase de la clase integrada Window. El archivo XAML define el diseño, que en este ejemplo es una colección vertical de controles: un bloque de texto con instrucciones para el usuario, un cuadro de texto para que el usuario escriba su nombre, un botón para enviar y un bloque de texto con los resultados. Al hacer clic en el botón, SubmitButton_Clickse llama al método definido en el .xaml.csarchivo. Esta función actualiza el último bloque de texto para mostrar un mensaje de saludo al usuario, dirigiéndose a él por el nombre que ha introducido.

Características

Medios y gráficos

WPF admite la mayoría de los tipos de medios modernos, incluidas imágenes vectoriales y rasterizadas, audio, vídeo, y puede admitir renderizado tanto en 2D como en 3D. [ 11 ] También admite la implementación de efectos gráficos en elementos visuales, como sombreadores de píxeles HLSL y efectos integrados como desenfoques y sombras paralelas . [ 12 ] [ 13 ]

WPF se basa principalmente en gráficos vectoriales, lo que permite que la mayoría de los controles y elementos se escalen sin pérdida de calidad ni pixelación . [ 14 ] [ 15 ]

Enlace de datos

WPF emplea el enlace de datos , una técnica para propagar cambios entre los elementos de la interfaz de usuario y el modelo de objetos del programa. [ 16 ] Por ejemplo, un bloque de texto definido en XAML podría enlazar su contenido a una propiedad de cadena almacenada en un objeto C# de la siguiente manera:

<TextBlock Text= "{Binding Username}" />
public class ExampleViewModel { public string Username { get ; set ; } }

Esto haría que el bloque de texto mostrara el valor de la Usernamepropiedad.

La dirección en la que se produce el enlace de datos es configurable: se puede definir para que vaya de la interfaz de usuario al código fuente (por ejemplo, el texto introducido en un cuadro de texto se propaga a una propiedad de cadena vinculada en el código), o del código fuente a la interfaz de usuario (por ejemplo, un reloj visual se actualiza para mostrar la hora actual almacenada en el código), o bidireccional. [ 16 ]

El enlace de datos no tiene restricciones de tipos, y es posible enlazar estructuras , clases o colecciones . Se pueden usar convertidores para transponer los valores y tipos que se usan durante el enlace; por ejemplo, enlazar un cuadro de texto a una propiedad DateTime , pero usar un convertidor para mostrar la hora como una cadena de fecha localizada formateada . [ 16 ]

La mayoría de las propiedades de los controles integrados pueden estar vinculadas a datos, y los controles personalizados pueden crear propiedades vinculables definiendo propiedades de dependencia. [ 16 ] [ 17 ]

MVVM , el patrón arquitectónico que Microsoft recomienda para los desarrolladores de WPF, se basa en gran medida en el enlace de datos. [ 18 ]

Estilos y plantillas

Mediante plantillas y estilos, los desarrolladores pueden definir el aspecto visual y la estructura de los elementos de la interfaz de usuario.

Un estilo es una combinación de configuraciones de propiedades que se pueden aplicar a un elemento de la interfaz de usuario con un único atributo de propiedad. Por ejemplo, se podría crear un estilo de " botón de opción azul " y reutilizarlo en cualquier número de botones de opción en todo el programa. Los estilos pueden modificar conjuntos de propiedades de los controles, pero no están diseñados para realizar cambios estructurales significativos.

Las plantillas son un mecanismo para definir interfaces de usuario alternativas para partes de una aplicación WPF. Existen varios tipos de plantillas disponibles en WPF para diferentes escenarios, pero todas tienen el propósito general de definir el contenido, el diseño y la estructura de un elemento de la interfaz de usuario. [ 19 ]

Animaciones

En WPF, muchas propiedades visuales pueden animarse. Esto se expone a través de propiedades de dependencia, que es el mismo sistema subyacente en el que se basa el enlace de datos. Las animaciones de WPF se basan en el tiempo, a diferencia de las que se basan en fotogramas. [ 20 ]

Las clases de animación se basan en el tipo de propiedad .NET que se va a animar. Por ejemplo, cambiar el color de un elemento se hace con la clase ColorAnimation y animar el ancho de un elemento (que es de tipo double ) se hace con la clase DoubleAnimation. [ 20 ]

Las animaciones se pueden agrupar en Storyboards, que son la forma principal de iniciar, detener, pausar y manipular las animaciones. [ 20 ]

Documentos y texto

WPF admite de forma nativa documentos paginados. Proporciona la DocumentViewerclase, que se utiliza para leer documentos con diseño fijo. La FlowDocumentReaderclase ofrece diferentes modos de visualización, como página por página o con desplazamiento, y también reorganiza el texto si se cambia el tamaño del área de visualización. Admite tanto la especificación Open XML Paper como las convenciones Open Packaging . [ 21 ]

WPF incluye varias características de representación de texto, incluidas las fuentes OpenType , TrueType y OpenType CFF ( Compact Font Format ). Esto significa que WPF puede admitir una amplia gama de características de texto, incluidas ligaduras , numerales de estilo antiguo , variantes con florituras , fracciones , superíndices y subíndices , versalitas , caracteres rubí , sustitución de glifos , múltiples líneas base y espaciado entre caracteres . [ 22 ]

WPF maneja textos en Unicode y los maneja independientemente de la configuración global, como la configuración regional del sistema. Además, se proporcionan mecanismos de reserva para permitir que la dirección de escritura (horizontal versus vertical) se maneje independientemente del nombre de la fuente; creación de fuentes internacionales a partir de fuentes compuestas, utilizando un grupo de fuentes de un solo idioma; incrustación de fuentes compuestas. La información de vinculación de fuentes y de reserva de fuentes se almacena en un archivo XML portátil, utilizando tecnología de fuentes compuestas. [ 23 ] El archivo XML tiene la extensión .CompositeFont .

El motor de texto de WPF también admite la corrección ortográfica integrada . Además, admite funciones como el interlineado automático, texto internacional mejorado, salto de línea guiado por idioma, división de palabras y justificación, efectos de mapa de bits, transformaciones y efectos de texto como sombras, desenfoque, brillo, rotación, etc. También admite texto animado; esto incluye glifos animados, así como cambios en tiempo real en la posición, el tamaño, el color y la opacidad del texto.

La representación de texto en WPF aprovecha los avances de la tecnología ClearType , como el posicionamiento subpíxel, los anchos de avance naturales, el suavizado en la dirección Y, la representación de texto acelerada por hardware , así como el almacenamiento en caché agresivo de texto prerrenderizado en la memoria de vídeo. [ 24 ] ClearType no se puede desactivar en aplicaciones WPF 3.x antiguas. [ 25 ]

Interoperabilidad

Las características de Windows Forms son posibles mediante el uso de las clases ElementHosty .WindowsFormsHost

Para habilitar el uso de WinForms, el desarrollador ejecuta esto desde su código WPF C#: [ 26 ]

usando System.Windows.Forms.Integration ;WindowsFormsHost.EnableWindowsFormsInterop ( ) ;

Los programas WPF, mediante la función P/Invoke del CLR , pueden acceder a funcionalidades nativas como la llamada a funciones de las bibliotecas de Windows . Esto permite la capacidad de comunicarse y operar otras partes del sistema operativo, incluidas las bibliotecas no administradas . [ 27 ]

Entrada alternativa y accesibilidad

WPF admite Windows Ink para la entrada basada en lápiz [ 28 ] y la entrada multitáctil en Windows 7 y versiones posteriores [ 29 ] . También admite Microsoft UI Automation para permitir a los desarrolladores crear interfaces accesibles y exponer la interfaz de usuario a marcos de prueba automatizados [ 30 ] .

XAML

Tras el éxito de los lenguajes de marcado para el desarrollo web, WPF introdujo el Lenguaje de Marcado de Aplicaciones Extensible ( XAML ; / ˈzæməl / ) , que se basa en XML . XAML está diseñado como un método más eficiente para desarrollar interfaces de usuario de aplicaciones. [ 31 ] XAML es un lenguaje declarativo , lo que significa que el desarrollador (o diseñador) describe el comportamiento y la integración de los componentes sin utilizar programación procedimental . Aunque es raro que una aplicación completa se construya completamente en XAML, la introducción de XAML permite a los diseñadores de aplicaciones contribuir de manera más efectiva al ciclo de desarrollo de la aplicación. El uso de XAML para desarrollar interfaces de usuario también permite la separación del modelo y la vista, lo que se considera un buen principio arquitectónico. [ 32 ] En XAML, los elementos y atributos se asignan a clases y propiedades en las API subyacentes.

Al igual que en el desarrollo web, tanto los diseños como los temas específicos se adaptan bien al marcado, pero XAML no es necesario para ninguno de los dos. De hecho, todos los elementos de WPF se pueden codificar en un lenguaje .NET ( C# , VB.NET ). El código XAML se puede compilar en un ensamblado administrado, del mismo modo que se hace con todos los lenguajes .NET.

Despliegue

Las aplicaciones WPF son ejecutables de escritorio independientes exclusivos de Windows .

Históricamente, WPF admitía la compilación a XBAP , un formato de archivo diseñado para mostrarse en navegadores web mediante un complemento NPAPI , pero los navegadores dejaron de admitir NPAPI y XBAP, y la compilación de XBAP ya no se incluye en WPF para .NET. [ 33 ] [ 34 ]

Uso e influencia

WPF se utiliza para desarrollar Visual Studio , el IDE insignia de Microsoft , y se utilizó para desarrollar Microsoft Expression Blend . [ 35 ]

Un ejemplo de una aplicación creada con UWP, un marco de trabajo basado en XAML influenciado por WPF.

WPF y su lenguaje de diseño, XAML, han influido en otros marcos de interfaz de usuario. Silverlight (nombre en clave WPF/E - WPF Everywhere), lanzado en 2007, es un complemento de navegador multiplataforma obsoleto . Silverlight tenía una implementación basada en WPF, que incluía el uso de XAML para el diseño, y admitía vídeo, gráficos vectoriales y animaciones. [ 36 ] Mediante complementos, era compatible con Mozilla Firefox , Internet Explorer 6 y versiones posteriores, Google Chrome 42 y versiones anteriores, y Apple Safari . Microsoft animó a los desarrolladores a dejar de usar Silverlight en 2015, [ 37 ] y el soporte finalizó oficialmente en 2021. [ 38 ]

Después de convertirse en código abierto en 2018, WPF inspiró el desarrollo de Avalonia , un marco de interfaz de usuario multiplataforma basado en XAML y .NET de código abierto, distribuido bajo la licencia MIT . [ 39 ] Si bien WPF solo está destinado a Windows, Avalonia también admite compilaciones para web (a través de WebAssembly ), macOS , Android , iOS y Linux . El nombre de Avalonia hace referencia al nombre en clave en desarrollo de WPF ("Avalon") y se promociona como "un sucesor espiritual de WPF". [ 40 ] Avalonia se utiliza actualmente en herramientas creadas por Unity , GitHub y JetBrains . [ 41 ]

OpenSilver es un marco de trabajo diseñado para migrar soluciones WPF a la web utilizando WebAssembly . OpenSilver 3.1, lanzado en diciembre de 2024, incluyó un diseñador XAML para usar en Visual Studio Code . [ 42 ]

XAML, que fue diseñado originalmente para WPF, ha sido adoptado para otras bibliotecas de interfaz de usuario similares desarrolladas por Microsoft, como UWP , [ 43 ] diseñada para aplicaciones de Windows 10 , Windows 11 , Xbox One y Xbox Series S/X , y .NET MAUI (anteriormente Xamarin.Forms ), diseñada para crear aplicaciones nativas multiplataforma para Android e iOS . [ 44 ]

Desarrollo

Los desarrolladores de aplicaciones WPF suelen usar Microsoft Visual Studio . Visual Studio contiene una combinación de editor XAML y diseñador visual WPF, a partir de Visual Studio 2008. [ 45 ] Antes de Visual Studio 2008, el complemento del diseñador WPF , con nombre en clave Cider, fue la versión original de un editor WYSIWYG para crear ventanas, páginas y controles de usuario WPF. Estuvo disponible para Visual Studio 2005 como una extensión de Visual Studio 2005 para .NET Framework 3.0 CTP para el lanzamiento inicial de WPF. [ 46 ]

Visual Studio no es estrictamente necesario para desarrollar proyectos WPF, ya que las soluciones se pueden compilar en la línea de comandos usando MSBuild . [ 47 ]

Microsoft Blend es una herramienta orientada al diseño que proporciona una mesa de trabajo para la creación de aplicaciones WPF con gráficos 2D y 3D, texto y formularios. Genera XAML que se puede exportar a otras herramientas y comparte formatos de solución (archivos .sln) y de proyecto (.csproj, .vbproj) con Microsoft Visual Studio. Microsoft Expression Design es una herramienta de gráficos vectoriales 2D y de mapa de bits para exportar a XAML .

Referencias

  1. "v8.0.5" . github.com . 2023-05-14 . Consultado el 2023-05-30 .
  2. "¿Qué es Windows Presentation Foundation - WPF .NET?" . learn.microsoft.com . 2023-06-02 . Consultado el 2024-05-15 .
  3. 1 2 Martin, Jeff (4 de diciembre de 2018). "Microsoft publica como código abierto WPF, WinForms y WinUI" . InfoQ . Recuperado el 6 de diciembre de 2018 .
  4. 1 2 dotnet-bot. "Descripción general de XAML (WPF)" . msdn.microsoft.com . Consultado el 31 de marzo de 2018 .
  5. Sells, Chris; Griffiths, Ian (2007). Programación WPF: Creación de interfaces de usuario de Windows con Windows Presentation Foundation . O'Reilly Media, Inc. ISBN 9780596554798.
  6. Thurrott, Paul (29 de abril de 2005). "SuperSite de Paul Thurrott para Windows: El camino hacia Windows Longhorn 2005" . www.winsupersite.com . Archivado del original el 7 de mayo de 2005. Consultado el 11 de octubre de 2025 .
  7. Somasegar, S. (2006-06-09). "Blog de Somasegar : .NET Framework 3.0" . blogs.msdn.com . Archivado del original el 11 de junio de 2007. Consultado el 11 de octubre de 2025 . 
  8. kexugit (14 de marzo de 2007). "Buzón de correo: ¿Qué versión de .NET Framework se incluye en qué versión del sistema operativo?" . learn.microsoft.com . Consultado el 25 de mayo de 2024 .
  9. gewarren (24-04-2024). "Versiones de .NET Framework y Windows OS - .NET Framework" . learn.microsoft.com . Consultado el 25-05-2024 .
  10. Hanselman, Scott (4 de diciembre de 2018). "Anuncio de que WPF, WinForms y WinUI se convertirán en código abierto" . Recuperado el 6 de diciembre de 2018 .
  11. Gráficos y multimedia . Msdn.Microsoft.com. Consultado el 29 de agosto de 2013.
  12. dotnet-bot. "Clase de efecto (System.Windows.Media.Effects)" . learn.microsoft.com . Consultado el 22 de mayo de 2024 .
  13. 4. Cómo WPF y Silverlight utilizan sombreadores: HLSL y sombreadores de píxeles para desarrolladores XAML [ Libro ] . ISBN 978-1-4493-2499-5. Consultado el 28 de mayo de 2024 .{{cite book}}: |website=ignorado ( ayuda )
  14. "Presentación de Windows Presentation Foundation" . msdn.microsoft.com . 11 de mayo de 2010. Consultado el 31 de marzo de 2018 .
  15. "¿Qué hay de nuevo en WPF 3.5? Aquí tienes quince características interesantes..." Consultado el 14 de octubre de 2007 .
  16. 1 2 3 4 adegeo (2023-09-02). "Descripción general del enlace de datos - WPF .NET" . learn.microsoft.com . Recuperado el 22 de mayo de 2024 .
  17. adegeo (28-06-2022). "Descripción general de las propiedades de dependencia - WPF .NET" . learn.microsoft.com . Consultado el 22-05-2024 .
  18. kexugit (2016-12-08). "Patrones: aplicaciones WPF con el patrón de diseño Modelo-Vista-ViewModel" . learn.microsoft.com . Consultado el 25 de mayo de 2024 .
  19. adegeo (2023-03-03). "Estilos y plantillas - WPF .NET" . learn.microsoft.com . Consultado el 22 de mayo de 2024 .
  20. 1 2 3 adegeo (2022-03-17). "Descripción general de la animación - WPF .NET Framework" . learn.microsoft.com . Recuperado el 22 de mayo de 2024 .
  21. adegeo (06-02-2023). "Descripción general de la documentación - WPF .NET Framework" . learn.microsoft.com . Consultado el 22-05-2024 .
  22. adegeo (18 de agosto de 2022). "Características de las fuentes OpenType - WPF .NET Framework" . learn.microsoft.com . Consultado el 22 de mayo de 2024 .
  23. "Tipografía en Windows Presentation Foundation" . msdn.microsoft.com . 3 de noviembre de 2006. Consultado el 31 de marzo de 2018 .
  24. dotnet-bot. "Descripción general de ClearType" . msdn.microsoft.com . Consultado el 31 de marzo de 2018 .
  25. "Deshabilitar el suavizado de bordes" . social.msdn.microsoft.com . Consultado el 31 de marzo de 2018 .
  26. dotnet-bot. "Método WindowsFormsHost.EnableWindowsFormsInterop (System.Windows.Forms.Integration)" . learn.microsoft.com . Consultado el 22 de mayo de 2024 .
  27. jkoritzinsky (10 de mayo de 2024). "Platform Invoke (P/Invoke) - .NET" . learn.microsoft.com . Consultado el 25 de mayo de 2024 .
  28. adegeo (18 de agosto de 2022). "Tinta digital: Windows Forms y COM frente a WPF" . learn.microsoft.com . Consultado el 22 de mayo de 2024 .
  29. kexugit (12 de agosto de 2015). "MSDN Magazine: UI Frontiers - Multi-Touch Manipulation Events in WPF" . learn.microsoft.com . Consultado el 22 de mayo de 2024 .
  30. Xansky. "Descripción general de la automatización de la interfaz de usuario" . msdn.microsoft.com . Consultado el 31 de marzo de 2018 .
  31. MacDonald, Matthew (2010). Pro WPF en VB 2010: Windows Presentation Foundation en .NET 4. Apress. ISBN 9781430272403.
  32. Larman, Craig. Aplicación de UML y patrones: una introducción al análisis y diseño orientado a objetos y al proceso unificado (PDF) (2.ª ed.). pág. 472.  
  33. adegeo. "Preguntas frecuentes sobre la compatibilidad con XBAP" . learn.microsoft.com . Consultado el 15 de mayo de 2024 .
  34. kexugit (09-03-2011). "IE9 - XBAPs deshabilitados en la zona de Internet" . learn.microsoft.com . Consultado el 15-05-2024 .
  35. Blog, Visual Studio (16 de febrero de 2010). "WPF en Visual Studio 2010 - Parte 1 : Introducción" . Blog de Visual Studio . Consultado el 22 de mayo de 2024 . 
  36. kexugit (1 de octubre de 2019). "Silverlight: Comienza a construir una experiencia más profunda en la web" . learn.microsoft.com . Consultado el 27 de diciembre de 2024 .
  37. Blog, Microsoft Edge; Smith, Jerry (2 de julio de 2015). "Transición a HTML5 Premium Media" . Blog de Microsoft Edge . Consultado el 23 de mayo de 2024 .
  38. GitHub-Name. "Silverlight 5 - Microsoft Lifecycle" . learn.microsoft.com . Consultado el 23 de mayo de 2024 .
  39. "¿Alguien quiere un marco de presentación multiplataforma para Windows? La respuesta corta: sí. Desempaquetando Avalonia" . Archivado del original el 27 de septiembre de 2024. Consultado el 27 de diciembre de 2024 .
  40. "Avalonia UI - Marco de interfaz de usuario multiplataforma para .NET" . Avalonia UI . Consultado el 16 de mayo de 2024 .
  41. "Avalonia UI - Showcase" . avaloniaui.net . Consultado el 23 de mayo de 2024 .
  42. "OpenSilver 3.1 presenta el diseñador XAML de arrastrar y soltar para VS Code" . Visual Studio Magazine. 10 de diciembre de 2024. Consultado el 16 de diciembre de 2024 .
  43. jwmsft (2022-10-20). "Plataforma XAML - Aplicaciones UWP" . learn.microsoft.com . Consultado el 23 de mayo de 2024 .
  44. davidbritch (25/07/2023). "XAML - .NET MAUI" . learn.microsoft.com . Consultado el 23/05/2024 .
  45. ^ Personal, CodeGuru (6 de abril de 2009). "Un recorrido por WPF en Visual Studio 2008" . CodeGuru . Consultado el 23 de mayo de 2024 .
  46. "Detalles de descarga: Microsoft Visual Studio Code Name "Orcas" Community Technology Preview - WinFX™ Development Tools" . Microsoft . 15 de abril de 2006. Archivado del original el 15 de abril de 2006. Consultado el 23 de mayo de 2024 .
  47. adegeo (18 de agosto de 2022). "Compilar una aplicación - WPF .NET Framework" . learn.microsoft.com . Consultado el 23 de mayo de 2024 .

Bibliografía

  • Adam Nathan : Windows Presentation Foundation Unleashed (WPF) , 21 de diciembre de 2006, Sams Publishing, ISBN 0-672-32891-7
  • Chris Anderson : Fundamentos esenciales de Windows Presentation Foundation (WPF) , 11 de abril de 2007, Addison-Wesley, ISBN 0-321-37447-9
  • Chris Sells, Ian Griffiths: Programación de WPF , 28 de agosto de 2007, O'Reilly Media, ISBN 0-596-51037-3
  • Arlen Feldman , Maxx Daymon : WPF en acción con Visual Studio 2008 , 21 de noviembre de 2008, Manning Publications, ISBN 1-933988-22-3
  • Biblioteca MSDN: Fundación de presentaciones de Windows
  • Tipografía sofisticada con Windows Presentation Foundation
  • Formación de usuarios de Windows Presentation Foundation