Extensible Application Markup Language (XAML) Extensible Application Markup Language (XAML) es un lenguaje con el que puedes modificar los textos de los objetos xButton, pudiendo crear hipervinculos, margenes y muchas otras cosas que resultan bastante interesantes para personalizar al máximo nuestros botones. Más Información de MSDN XAML Contenido: Tags soportados por XAML Ejemplos Tags soportados por XAML Lo siguiente es una lista de etiquetas de XAML apoyadas y sus atributos: Tags Attributes Page (Style, Margin, ClipToBound, HorizontalAlignment, VerticalAlignment, Width, Height,MinWidth, MaxWidth, MinHeight, MaxHeight,) Border (Cursor, Style, Margin, ClipToBound, HorizontalAlignment, VerticalAlignment, Width, Height, MinWidth, MaxWidth,MinHeight, MaxHeight, Padding, Background, BorderThickness, BorderBrush) TextBlock (Cursor, Style, Margin, ClipToBound, HorizontalAlignment, VerticalAlignment, Width, Height, MinWidth, MaxWidth, MinHeight, MaxHeight, Padding, Background, Foreground, TextWrapping, TextAlignment, TextDecorations, FontSize, FontWeight, FontFamily, FontStyle, BaselineAlignment, Text) Image (Style, Margin, ClipToBound, HorizontalAlignment, VerticalAlignment, Width, Height, MinWidth, MaxWidth, MinHeight, MaxHeight, Source) Run (Cursor, Background, Foreground, TextDecorations, FontSize, FontWeight, FontFamily, FontStyle, BaselineAlignment, Text) LineBreak no attributes Span (Background, Foreground, TextDecorations, FontSize, FontWeight, FontFamily, FontStyle) Bold (Background, Foreground, TextDecorations, FontSize, FontWeight, FontFamily, FontStyle) Italic (Background, Foreground, TextDecorations, FontSize, FontWeight, FontFamily, FontStyle) Underline (Background, Foreground, TextDecorations, FontSize, FontWeight, FontFamily, FontStyle) InlineUIContainer (Background, Foreground, TextDecorations, FontSize, FontWeight, FontFamily, FontStyle) Hyperlink (Background, Foreground, TextDecorations, FontSize, FontWeight, FontFamily, FontStyle) Panel (Style, Margin, ClipToBound, HorizontalAlignment, VerticalAlignment, Width, Height, MinWidth, MaxWidth, MinHeight, MaxHeight, Background) StackPanel (Style, Margin, ClipToBound, HorizontalAlignment, VerticalAlignment, Width, Height, MinWidth, MaxWidth, MinHeight, MaxHeight, Background, Orientation) WrapPanel (Style, Margin, ClipToBound, HorizontalAlignment, VerticalAlignment, Width, Height, MinWidth, MaxWidth, MinHeight, MaxHeight, Background, Orientation, ItemHeight, ItemWidth) Canvas (Style, Margin, ClipToBound, HorizontalAlignment, VerticalAlignment, Width, Height, MinWidth, MaxWidth, MinHeight, MaxHeight, Background, Left, Right, Top, Bottom) Grid (Style, Margin, ClipToBound, HorizontalAlignment, VerticalAlignment, Width, Height, MinWidth, MaxWidth, MinHeight, MaxHeight, Background, ColumnDefinitions, RowDefinitions) ColumnDefinition (Width, MinWidth, MaxWidth) RowDefinition (Height, MinHeight, MaxHeight) Polygon (Width, Margin, ClipToBound, HorizontalAlignment, VerticalAlignment, Width, Height, MinWidth, MaxWidth, MinHeight, Points) Polyline (Width, Margin, ClipToBound, HorizontalAlignment, VerticalAlignment, Width, Height, MinWidth, MaxWidth, MinHeight, Points) Rectangle (IsMouseOver, Width, Margin, ClipToBound, HorizontalAlignment, VerticalAlignment, Width, Height, MinWidth, MaxWidth, MinHeight) Ellipse (Width, Margin, ClipToBound, HorizontalAlignment, VerticalAlignment, Width, Height, MinWidth, MaxWidth, MinHeight) Line (Width, Margin, ClipToBound, HorizontalAlignment, VerticalAlignment, Width, Height, MinWidth, MaxWidth, MinHeight, X1, Y1, X2, Y2) Button (IsPressed, Style, Width, Margin, ClipToBound, HorizontalAlignment, VerticalAlignment, Width, Height, MinWidth, MaxWidth, MinHeight, Content) CheckBox no attributes RadioButton no attributes ScrollViewer (Style, VerticalScrollBarVisibility, HorizontalScrollBarVisibility) SolidColorBrush (Color) LinearGradientBrush (StartPoint, EndPoint, GradientStops) GradientStop Style (Color, Offset) (TargetType, BasedOn, Resources) Setter (Property, Value) Ejemplos Lo siguiente es ejemplos de textos en formato XAML del objeto de xButton que puede ser usado cuando esta activado el markup. Ejemplo hipervinculo Este ejemplo muestra el siguiente texto "Botón con Hipervínculo". Ejemplo <TextBlock>Botón con <Hyperlink>Hypervinculo</Hyperlink></TextBlock> Ejemplo texto en color Este ejemplo muestra el siguiente texto "Este texto es de color rojo" donde pone 'color rojo' es mostrado en color rojo mientras el texto restante es mostrado en el negro. Ejemplo <TextBlock><Run FontWeight='Bold'>Este texto es de </Run> <Bold><Run Foreground='Red'>color rojo</Run></Bold></TextBlock> Ejemplo italic y bold Este ejemplo muestra el siguiente texto "Esto es texto italic y esto es texto bold." Ejemplo <TextBlock>Esto es texto <Italic>italic</Italic> y esto es texto <Bold>bold</Bold>.</TextBlock> Ejemplo texto en dos niveles Este ejemplo muestra el siguiente texto "Estoy en la linea Superior Estoy en la linea Inferior" muestra cada frase en distinto niveles. Ejemplo <StackPanel> <TextBlock>Estoy en la linea Superior </TextBlock> <TextBlock>Estoy en la linea Inferior.</TextBlock> </StackPanel> Ejemplo texto auto ajustado Este ejemplo muestra el siguiente texto "Este texto esta en dos lineas" muestra el texto auto ajustado en medida de el tamaño del botón, ademas de ser auto ajustado el texto que se muestra centrado y con un margen minimo de distancia entre cada uno de los lados. Ejemplo <StackPanel> <TextBlock TextWrapping="Wrap" Margin="1, 1, 1, 1" TextAlignment ="Center"><Run>Este texto esta en dos lineas</Run></TextBlock> </StackPanel> Ejemplo fijar imagen y cursor Este ejemplo muestra el siguiente texto "Instala" seguido de una imagen. El cursor de ratón cambia a una mano cuando usted ratón sobre la imagen. Ejemplo <TextBlock FontSize="32" Padding = "3" VerticalAlignment="Center">Instala <Image Cursor="Hand" Source="file://AutoPlay/Images/check.png"/></TextBlock> Ejemplo texto con panel Este ejemplo muestra un xButton con el texto "Archivo de Ayuda" en formato centrado, en texto ademas incluye el comando TextWrapping =”Wrap” para que se ajuste el texto en diferentes lineas si es necesario. Ejemplo <StackPanel> <Border BorderThickness="1, 0, 1, 1" BorderBrush="#FF1493"></Border> <Border Cursor="Hand" Margin="0, 0, 0, 0" BorderThickness="1, 0, 1, 1" BorderBrush="#FF1493" Background="#FFB6C1"> <TextBlock TextWrapping="Wrap" Margin="12, 4, 12, 4" TextAlignment ="Center"><Run>Archivo de Ayuda</Run></TextBlock> </Border> </StackPanel> Ejemplo texto con panel con degradado lateral sin borde Este ejemplo muestra un xButton con el texto "Texto estara aqui en formato centrado, en texto ademas incluye el comando Wrap para que se ajuste el texto en diferentes lineas si es necesario, y el panel no lleva linea de borde y he puesto un degradado lateral de dos colores. Ejemplo <Page> <StackPanel> <Border Cursor="Hand" Margin="0, 0, 0, 0"> <Border.Background> <LinearGradientBrush EndPoint="1, 0.5" StartPoint="0,0.5"> <GradientStop Color="#FF8C00" Offset="0"/> <GradientStop Color="#FFFFFF" Offset="1"/> </LinearGradientBrush> </Border.Background> <TextBlock TextWrapping="Wrap" Margin="12, 4, 12, 4" TextAlignment ="Center"><Run>Texto estara aqui</Run></TextBlock> </Border> </StackPanel> </Page> Ejemplo texto con panel con degradado central con borde Este ejemplo muestra un xButton con el texto "Texto estara aqui en formato centrado, en texto ademas incluye el comando Wrap para que se ajuste el texto en diferentes lineas si es necesario, y el panel no lleva linea de borde y he puesto un degradado centrado de dos colores. Ejemplo <Page> <StackPanel> <Border BorderThickness="1, 0, 1, 1" BorderBrush="#FFFFFF"></Border> <Border Cursor="Hand" Margin="0, 0, 0, 0" BorderThickness="1, 0, 1, 1" BorderBrush="#FFFFFF"> <Border.Background> <LinearGradientBrush EndPoint="1, 0.5" StartPoint="1,2.5"> <GradientStop Color="#FF1493" Offset="0"/> <GradientStop Color="#eef2ff" Offset="1"/> <GradientStop Color="#FF1493" Offset="2"/> </LinearGradientBrush> </Border.Background> <TextBlock TextWrapping="Wrap" Margin="12, 4, 12, 4" TextAlignment ="Center"><Run>Texto estara aqui</Run></TextBlock> </Border> </StackPanel> </Page> Ejemplo texto en dos lineas separados por una linea Este ejemplo muestra un xButton con el texto "Texto Superior" despues una linea de separaicon creada con Border y un texto que pone "Texto Inferior" aparte de eso estos textos trae otros parametros interesantes, que seguro que os seran de gran utlidad. Ejemplo <StackPanel TextBlock.FontFamily="Comic Sans MS"> <TextBlock Padding="0, 0, 0, 7" TextWrapping="Wrap">Texto Superior.</TextBlock> <Border Height="1" Background="White" /> <Border Height="1" Background="Black" /> <StackPanel Margin="1, 7, 0, 3" Orientation="Horizontal"> <TextBlock Margin="0, 0, 0, 0" VerticalAlignment="Center">Texto Inferior.</TextBlock> </StackPanel> </StackPanel> Ejemplo texto en dos lineas separados por una linea y hipervinculo Este ejemplo muestra un xButton con el texto "Instalar" en el bold, en la siguiente línea el texto en Wrap "Pulsa para instalar el software." seguido de un separador y un hipervínculo con el este texto "Más Información". Ejemplo <StackPanel TextBlock.FontFamily="Tahoma"> <TextBlock Padding="1, 3, 1, 3" FontWeight="Bold">Instalar</TextBlock> <TextBlock Padding="9, 6, 30, 7" TextWrapping="Wrap">Pulsa para instalar el software.</TextBlock> <Border Height="1" Background="#9ebbdd" /> <Border Height="1" Background="White" /> <StackPanel Margin="1, 7, 0, 3" Orientation="Horizontal"> <TextBlock Margin="7, 0, 0, 0" VerticalAlignment="Center" FontWeight="Bold"><Hyperlink>Más Información</Hyperlink></TextBlock> </StackPanel> </StackPanel> Ejemplo texto con panel avanzado Este ejemplo muestra que un xButton con un panel dentro del botón que contiene el texto "Instalar", al lado de él un hipervínculo "Más Información" y debajo del texto "Pulsa para instalar el software de D:\install". Ejemplo <Page> <StackPanel> <Border Cursor="Hand" BorderThickness="1" BorderBrush="#bdcaea"> <Border.Background> <LinearGradientBrush EndPoint="1, 0.5" StartPoint="0, 0.5"> <GradientStop Color="#c3d6ff" Offset="0"/> <GradientStop Color="#eef2ff" Offset="1"/> </LinearGradientBrush> </Border.Background> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="*"/> <ColumnDefinition Width="Auto"/> </Grid.ColumnDefinitions> <TextBlock Text="Instalar" Foreground="#30486e" FontSize="18" Margin="12,2,2,2"/> <TextBlock Grid.Column="1" Margin="2,2,12,2"><Hyperlink Foreground="#047c05"FontSize="18">Más Información</Hyperlink></TextBlock> </Grid> </Border> <Border Margin="0, 0, 0, 0" BorderThickness="1, 0, 1, 1" BorderBrush="#bdcaea" Background="#eff3ff"> <TextBlock TextWrapping="Wrap" Margin="12, 4, 12, 4"><Run>Pulsa para instalar el software de D:\install</Run></TextBlock> </Border> </StackPanel> </Page> Como usar la variable de evento e_Hyperlink Este ejemplo muestra como usar el la variable de evento e_Hyperlink de xButon. Muchos de los ejemplos que mostrado anteriormente incluian la oportunidad de usar hipervinculos, para que estos funcionen de manera corecta es necesario usar la variable “e_Hyperlink”. Os pondre un ejemplo basico usando como idea el del xButon “Ejemplo texto con panel avanzado”. Ejemplo if e_Hyperlink == "Más Información" then Dialog.Message("Información", "Has pulsado el hipervinculo ("..e_Hyperlink..")."); end Estos ejemplos te los puedes descargar pulsando aquí: Descargar Ejemplo Espero que este tutorial os sean de gran utilidad, la verdad es que me gustaría poneros mas ejemplos pero no dispongo de todo el tiempo que me gustaría, y bueno la verdad es que tampoco es que sea una maquina en el uso de XAML, y a medida que he ido haciendo este tutorial he ido aprendiendo como funciona este lenguaje. Bueno espero que os funcione todo bien si tenéis alguna duda os recomiendo que os miréis la ayuda de AMS 8 o visiteis la siguiente pagina MSDN XAML. Este tutorial a sido creador por Ceone para AMSSpecialist Blog, AMSSpecialist Foro y Darkreloaded entre otras paginas... si os a gustado y queréis mas tutoriales os recomiendo que visitéis las paginas nombras anteriormente. No suelo explayarme tanto en los finales de los tutoriales pero hace nada hemos emprendido un nuevo proyecto en el staff de AMSSpecialist es crear el Foro para poder tener mejor acceso a nuestros contenidos, la posibilidad de responder las preguntas de una manera mas fácil y por muchas otras razones. Os animo a que nos visitéis y os registréis, entre todos podemos ayudarnos mas fácilmente. Así que visitarnos en AMSSpecialist Foro y registrarte.