Silverlight - Plantillas
UN Templatedescribe el aspecto general y el aspecto visual del control. Para cada control, hay una plantilla predeterminada asociada a él, que le da la apariencia de ese control.
En la aplicación WPF, puede crear fácilmente sus propias plantillas cuando desee personalizar el comportamiento visual y la apariencia visual de un control.
Algunas características importantes son:
Todos los elementos de la interfaz de usuario tienen algún tipo de apariencia y comportamiento, por ejemplo Button tiene apariencia y comportamiento.
Click evento o mouse hover evento son los comportamientos, que se activan en respuesta a un clic y al pasar el mouse y hay una apariencia predeterminada de botón, que puede ser cambiado por el Control modelo.
Veamos de nuevo un ejemplo sencillo en el que un botón se define con plantilla.
<UserControl x:Class = "ButtonTemplate.MainPage"
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"
mc:Ignorable = "d" d:DesignWidth = "640" d:DesignHeight = "480">
<Grid x:Name = "LayoutRoot" HorizontalAlignment = "Center"
VerticalAlignment = "Center">
<Button Height = "100" Width = "100" Content = "Click!"
HorizontalContentAlignment = "Left" Click = "button_Click">
<Button.Template>
<ControlTemplate TargetType = "Button">
<Grid>
<Ellipse Fill = "Gray" Stroke = "Black"
StrokeThickness = "3" Margin = "-64,0,0,0" />
<ContentPresenter HorizontalAlignment = "{TemplateBinding
HorizontalContentAlignment}" VerticalAlignment = "Center"
Content = "{TemplateBinding Content}" />
</Grid>
</ControlTemplate>
</Button.Template>
</Button>
</Grid>
</UserControl>
Cuando se compile y ejecute el código anterior, verá el siguiente resultado.
Conexión de la plantilla
Todas las funciones de control, que queremos modelar, son con enlaces de plantilla. Algunos aspectos son un poco más complejos. Por ejemplo, siempre que tenga una forma de modelo de contenido, el enlace de plantilla por sí solo no es suficiente como lo vio en el botón. También tenemos que usar un presentador de contenido como se muestra en el ejemplo anterior.