WPF 06 - personalizando los controles de interfaz de usuario
1. Personalizando los
controles de interfaz de
usuario
D A N A E A G U I L A R G U Z M Á N .
M C T , M C P , M C T S
D A N A E A G U I L A R @ G M A I L . C O M
5. 1. Los árboles lógicos y arboles
visuales
2. El árbol visual: Window
StackPanel
Button
ButtonChrome
Button
ButtonChrome
ContentPresenter ContentPresenter
TextBlock
String
TextBlock
String
6. 1. Los árboles lógicos y arboles
visuales
Beneficios:
Podemos modificar los elementos del árbol visual usando estilos y
Triggers
Podemos usar Templates (Plantillas) para cambiar por completo la
apariencia de un elemento.
7. 2. Plantillas de controles
1. Los controles WPF no tienen apariencia!
Se muestran en base a Templates
Toda su presentación visual puede ser modificada manteniendo
intacto el comportamiento.
8. 2. Plantillas de controles
1. Definiendo Plantillas:
2. Aplicando las Plantillas:
<Window.Resources>
<ControlTemplate x:Key="TemplateBoton" TargetType="{x:Type Button}">
<Border BorderBrush="Yellow" BorderThickness="3" CornerRadius="15"
Background="Blue" TextBlock.Foreground="White">
<ContentPresenter HorizontalAlignment="Center"
RecognizesAccessKey="True"/>
</Border>
</ControlTemplate>
</Window.Resources>
<Button Name="button1" Template="{StaticResource TemplateBoton}">
_Boton con template
</Button>
Contenido del
control
Nueva apariencia
12. Controles Personalizados
2. Controles de Usuario (User Controls).
1. Heredan de UserControl
2. Están compuestos de otros controles que juntos logran alguna
funcionalidad.
3. Provee una superficie de diseño visual en tiempo de desarrollo
13. Controles Personalizados
3. Controles Personalizados (Custom controls).
1. Heredan Control o ContentControl
2. Definen su propia apariencia y funcionalidad
3. No provee diseño visual en tiempo de desarrollo
19. 4. Usando los controles
personalizados
1. Agregar la referencia al assembly de controles.
2. Agregar la referencia al assembly en XAML:
3. Agregar el control en XAML:
xmlns:cc="clr-namespace:WpfCustomControlLibrary1;
assembly=WpfCustomControlLibrary1"
<cc:CustomControl1 />