Exemplo de um ControlTemplate Window
Controles em Windows Presentation Foundation (WPF) têm um ControlTemplate que contém a árvore visual daquele controle. Você pode mudar a estrutura e a aparência de um controle modificando o ControlTemplate daquele controle. Não há forma de substituir apenas parte da árvore visual de um controle; para alterar a árvore visual de um controle você precisa definir a propriedade Template do controle como sua nova e completa ControlTemplate.
Esse tópico mostra o ControlTemplate do controle Window WPF.
Este tópico contém as seguintes seções.
- Pré-requisitos
- Exemplo de um ControlTemplate Window
- Tópicos relacionados
Pré-requisitos
Para rodar os exemplos deste tópico, você deve entender como escrever aplicações WPF. Para obter mais informações, consulte Getting Started with Windows Presentation Foundation. Você também deve entender como estilos são utilizados em WPF. Para obter mais informações, consulte Styling and Templating.
Exemplo de um ControlTemplate Window
Although this example contains all of the elements that are defined in the ControlTemplate of a Window by default, the specific values should be thought of as examples.
<Style x:Key="{x:Type Window}" TargetType="{x:Type Window}">
<Setter Property="SnapsToDevicePixels" Value="true"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Window}">
<Grid Background="{StaticResource WindowBackgroundBrush}">
<AdornerDecorator>
<ContentPresenter/>
</AdornerDecorator>
<ResizeGrip x:Name="WindowResizeGrip"
HorizontalAlignment="Right"
VerticalAlignment="Bottom"
Visibility="Collapsed"
IsTabStop="false"/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="ResizeMode" Value="CanResizeWithGrip">
<Setter TargetName="WindowResizeGrip" Property="Visibility" Value="Visible"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
The preceding example uses the following resources.
<Style x:Key="{x:Type ResizeGrip}" TargetType="{x:Type ResizeGrip}">
<Setter Property="OverridesDefaultStyle" Value="true"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ResizeGrip}">
<Border Background="Transparent"
SnapsToDevicePixels="True"
Width="16"
Height="16">
<Rectangle Margin="2">
<Rectangle.Fill>
<DrawingBrush Viewport="0,0,4,4"
ViewportUnits="Absolute"
Viewbox="0,0,8,8"
ViewboxUnits="Absolute"
TileMode="Tile">
<DrawingBrush.Drawing>
<DrawingGroup>
<DrawingGroup.Children>
<GeometryDrawing Brush="#AAA"
Geometry="M 4 4 L 4 8 L 8 8 L 8 4 z"/>
</DrawingGroup.Children>
</DrawingGroup>
</DrawingBrush.Drawing>
</DrawingBrush>
</Rectangle.Fill>
</Rectangle>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
...
<SolidColorBrush x:Key="WindowBackgroundBrush" Color="#FFF" />
For the complete sample, see Estilo com ControlTemplates exemplo.
Consulte também
Conceitos
Exemplo de ControlTemplate NavigationWindow
Diretrizes para criação de controles estilizados