Xaml

XAML
Información sobre la plantilla
Xaml.JPG
Concepto:es el lenguaje de formato para la interfaz de usuario para la Base de Presentación de Windows.

XAML (acrónimo pronunciado xammel del inglés eXtensible Application Markup Language, Lenguaje Extensible de Formato para Aplicaciones en español) es el lenguaje de formato para la interfaz de usuario para la Base de Presentación de Windows (WPF por sus siglas en inglés) y Microsoft Silverlight (wpf/e), el cual es uno de los "pilares" de la interfaz de programación de aplicaciones .NET en su versión 3.0 (conocida con anterioridad con el nombre clave WinFX). XAML es un lenguaje declarativo basado en XML, optimizado para describir gráficamente interfaces de usuarios visuales ricas desde el punto de vista gráfico, tales como las creadas por medio de Adobe Flash. XUL y UIML son otros ejemplos de lenguajes de interfaz basados en XML. SVG es un estándar de la organización W3C, el cual soporta gráficos, animaciones, audio y video integrados, eventos y comportamiento descrito por medio de escritura y puede ser utilizado como lenguaje de interfaz basado en XML.

Resumen de sintaxis de XAML

En las secciones siguientes se explican las formas básicas de la sintaxis XAML y se proporciona un breve ejemplo de marcado. Estas secciones no están pensadas para proporcionar información completa sobre cada sintaxis, por ejemplo, cómo se representan en el sistema de tipos de respaldo. Para obtener más información acerca de los detalles específicos de la sintaxis de XAML para cada una de las formas de sintaxis presentadas en este tema, vea Detalles de la sintaxis XAML. Gran parte del material de las secciones siguientes será básico para usted si tiene familiaridad con el lenguaje XML. Esta es una consecuencia de uno de los principios de diseño básicos de XAML. XAML El lenguaje XAML define conceptos propios, pero estos conceptos funcionan dentro del lenguaje XML y del formato de marcado.


Elementos de objeto XAML

Normalmente, un elemento de objeto declara una instancia de un tipo. Ese tipo se define en los ensamblados que proporcionan los tipos de respaldo para una tecnología que utiliza XAML como un lenguaje. La sintaxis del elemento de objeto siempre se inicia con un corchete angular de apertura (<), que va seguido del nombre del tipo donde se desea crear una instancia. (El nombre puede incluir un prefijo, un concepto que se explicará más adelante). Después de esto, puede declarar opcionalmente los atributos en el elemento de objeto. Para completar la etiqueta del elemento de objeto, finalice con un corchete angular de cierre (>). Opcionalmente, puede usar un formulario de autocierre que no tenga contenido y completar la etiqueta con una barra diagonal y un corchete angular de cierre (/>) seguidos. Por ejemplo, examine de nuevo el fragmento de código de marcado mostrado anteriormente: <StackPanel>

</StackPanel> Esto especifica dos elementos de objeto: <StackPanel> (con contenido y una etiqueta de cierre después) y <Button .../> (el formulario de autocierre, con varios atributos). Los elementos de objeto StackPanel y Button se asignan al nombre de una clase definida por WPF y que forma parte de los ensamblados de WPF. Al especificar una etiqueta de elemento de objeto, crea una instrucción para que el procesamiento XAML cree una nueva instancia. Cada instancia se crea llamando al constructor predeterminado del tipo subyacente al analizar y cargar el código XAML.

Sintaxis de atributos (propiedades)

Las propiedades de un objeto se pueden expresar a menudo como atributos del elemento de objeto. Una sintaxis de atributo denomina la propiedad que está estableciendo en la sintaxis de atributo, seguida del operador de asignación (=). El valor de un atributo siempre se especifica como una cadena incluida entre comillas. La sintaxis de atributo es la sintaxis de establecimiento de propiedades más optimizada y será la más intuitiva para los desarrolladores que han utilizado lenguajes de marcado anteriormente. Por ejemplo, el marcado siguiente crea un botón que tiene texto rojo y un fondo azul, además de mostrar texto especificado como Content. <Button Background="Blue" Foreground="Red" Content="This is a button"/>

Sintaxis de elementos de propiedad

En algunas propiedades de un elemento de objeto, no es posible usar la sintaxis de atributo, ya que el objeto o la información necesaria para proporcionar el valor de la propiedad no se puede expresar correctamente dentro de las comillas y restricciones de cadena de la sintaxis de atributo. En estos casos, se puede utilizar otra sintaxis conocida como sintaxis de elementos de propiedad. La sintaxis de la etiqueta inicial del elemento de propiedad es <nombreDeTipo.nombreDePropiedad>. Generalmente, el contenido de la etiqueta es un elemento de objeto del tipo que la propiedad toma como su valor.Después de especificar el contenido, debe cerrar el elemento de propiedad con una etiqueta de cierre. La sintaxis de la etiqueta de cierre es </nombreTipo.nombrePropiedad>. Si es posible utilizar una sintaxis de atributo, su uso es generalmente más conveniente, ya que habilita un marcado más compacto, pero suele ser una cuestión de estilo, no una limitación técnica. El ejemplo siguiente muestra cómo se establecen las mismas propiedades que en el ejemplo anterior de sintaxis de atributo, pero ahora utilizando la sintaxis de elementos de propiedad para todas las propiedades de Button. <Button>

This is a button  

</Button>

Seguridad XAML

XAML es un lenguaje de marcado que representa directamente la creación de instancias y la ejecución de objetos. Por consiguiente, los elementos creados en código XAML tienen la misma capacidad de interactuar con los recursos del sistema (por ejemplo, el acceso a la red y la E/S del sistema de archivos) que el código generado equivalente. WPF admite .NET Framework 4 seguridad marco Code Access Security (CAS). Esto significa que el contenido de WPF que se ejecuta en la zona de Internet tiene permisos de ejecución reducidos. "El código XAML dinámico" (páginas de código XAML no compilado interpretadas en el momento de la carga por un visor de código XAML) y las XAML browser application (XBAP) se ejecutan normalmente en esta zona de Internet y usan el mismo conjunto de permisos. No obstante, el código XAML cargado en una aplicación de plena confianza tiene el mismo acceso a los recursos del sistema que la aplicación host. Para obtener más información, vea Seguridad de confianza parcial de WPF.

Tecnología

Un archivo XAML puede ser compilado para obtener un archivo binario XAML .baml, el cual puede se insertado como un recurso en un ensamblad de Framework .NET. En el momento de ejecución, el motor del Framework extrae el archivo .baml de los recursos del ensamblado, se analiza sintácticamente, y crea el correspondiente árbol visual WPF o Workflow. Cuando se use en Windows Presentation Foundation, XAML es usado para describir interfaces visuales para usuarios. WPF permite la definición de objetos en 2D y 3D, rotaciones, animaciones y otra variedad de características y efectos. Cuando es usado en el contexto de Windows Workflow Foundation, XAML es usado para describir lógica declarativa potencialmente larga (potentially long-running declarative logic), como aquellos creados en el proceso de sistemas de modelado y herramientas. El formato de serialización para WorkFlows había sido llamado previamente XOML, para diferenciarlo de su uso en IU de los XAML, pero esa diferenciación ya no existe. Sin embargo las extensiones de los archivos que contienen marcado de workflow es todavía XOML.

Cargar XAML desde el código

XAML se puede usar para definir la totalidad de la interfaz de usuario, pero a veces también es conveniente definir solo una parte de dicha interfaz en código XAML. Esta funcionalidad se podría usar para habilitar una personalización parcial, para el almacenamiento local de información, para proporcionar un objeto comercial mediante código XAML o para diversos escenarios posibles. La clave para estos escenarios es la clase XamlReader y su método Load. La entrada es un archivo XAML y la salida es un objeto que representa la totalidad del árbol de objetos en tiempo de ejecución que se ha creado a partir de ese marcado. A continuación, se puede insertar el objeto como una propiedad de otro objeto que ya existe en la aplicación.Siempre que la propiedad sea una propiedad adecuada en el modelo de contenido que tiene funcionalidades de presentación y que notifica al motor de ejecución que se ha agregado el nuevo contenido a la aplicación, es posible modificar con gran facilidad el contenido de una aplicación en ejecución si se carga código XAML. Tenga en cuenta que esta función normalmente sólo está disponible en las aplicaciones de plena confianza, debido a las implicaciones de seguridad obvias de la carga de archivos en aplicaciones que se están ejecutando.


Referencia