Passo a passo: Estilizando conteúdo do WPF
Este artigo mostra como aplicar estilo a um controle WPF (Windows Presentation Foundation) hospedado em um Formulário do Windows.
Pré-requisitos
Você precisa do Visual Studio para concluir este passo a passo.
Criar o projeto
Abra o Visual Studio e crie um novo projeto de Aplicativo do Windows Forms no Visual Basic ou no Visual C# chamado StylingWpfContent
.
Nota
Ao hospedar conteúdo do WPF, há suporte apenas para projetos C# e Visual Basic.
Criar os tipos de controle do WPF
Depois de adicionar um tipo de controle WPF ao projeto, você pode hospedá-lo em um controle ElementHost.
Adicione um novo projeto de UserControl do WPF à solução. Use o nome padrão para o tipo de controle,
UserControl1.xaml
. Para obter mais informações, consulte Instruções passo a passo: como criar novo conteúdo WPF nos Windows Forms em tempo de design.No modo Design, verifique se
UserControl1
está selecionado.Na janela de Propriedades , defina o valor das propriedades Width e Height para 200.
Adicione um controle System.Windows.Controls.Button ao UserControl e defina o valor da propriedade Content para Cancelar.
Adicione um segundo controle System.Windows.Controls.Button ao UserControl e defina o valor da propriedade Content para OK.
Compile o projeto.
Aplicar um estilo a um controle WPF
Você pode aplicar estilos diferentes a um controle WPF para alterar sua aparência e comportamento.
Abra
Form1
no Designer de Formulários do Windows.Na caixa de ferramentas , clique duas vezes
UserControl1
para criar uma instância deUserControl1
no formulário.Uma instância de
UserControl1
é hospedada em um novo controle de ElementHost chamadoelementHost1
.No painel de smart tag para
elementHost1
, clique em Editar conteúdo hospedado na lista suspensa.O
UserControl1
é aberto no Designer do WPF.Na exibição XAML, insira o XAML a seguir após a marca de abertura
<UserControl>
. Esse XAML cria um gradiente com uma borda de gradiente contrastante. Quando o controle é clicado, os gradientes são alterados para gerar uma aparência de botão pressionado. Para obter mais informações, consulte Estilo e modelagem.<UserControl.Resources> <LinearGradientBrush x:Key="NormalBrush" EndPoint="0,1" StartPoint="0,0"> <GradientStop Color="#FFF" Offset="0.0"/> <GradientStop Color="#CCC" Offset="1.0"/> </LinearGradientBrush> <LinearGradientBrush x:Key="PressedBrush" EndPoint="0,1" StartPoint="0,0"> <GradientStop Color="#BBB" Offset="0.0"/> <GradientStop Color="#EEE" Offset="0.1"/> <GradientStop Color="#EEE" Offset="0.9"/> <GradientStop Color="#FFF" Offset="1.0"/> </LinearGradientBrush> <LinearGradientBrush x:Key="NormalBorderBrush" EndPoint="0,1" StartPoint="0,0"> <GradientStop Color="#CCC" Offset="0.0"/> <GradientStop Color="#444" Offset="1.0"/> </LinearGradientBrush> <LinearGradientBrush x:Key="BorderBrush" EndPoint="0,1" StartPoint="0,0"> <GradientStop Color="#CCC" Offset="0.0"/> <GradientStop Color="#444" Offset="1.0"/> </LinearGradientBrush> <LinearGradientBrush x:Key="PressedBorderBrush" EndPoint="0,1" StartPoint="0,0"> <GradientStop Color="#444" Offset="0.0"/> <GradientStop Color="#888" Offset="1.0"/> </LinearGradientBrush> <Style x:Key="SimpleButton" TargetType="{x:Type Button}" BasedOn="{x:Null}"> <Setter Property="Background" Value="{StaticResource NormalBrush}"/> <Setter Property="BorderBrush" Value="{StaticResource NormalBorderBrush}"/> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type Button}"> <Grid x:Name="Grid"> <Border x:Name="Border" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Padding="{TemplateBinding Padding}"/> <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" RecognizesAccessKey="True"/> </Grid> <ControlTemplate.Triggers> <Trigger Property="IsPressed" Value="true"> <Setter Property="Background" Value="{StaticResource PressedBrush}" TargetName="Border"/> <Setter Property="BorderBrush" Value="{StaticResource PressedBorderBrush}" TargetName="Border"/> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style> </UserControl.Resources>
Aplique o estilo de
SimpleButton
definido na etapa anterior ao botão Cancelar inserindo o XAML a seguir na marca<Button>
do botão Cancelar.Style="{StaticResource SimpleButton}
Sua declaração de botão será semelhante ao seguinte XAML:
<Button Height="23" Margin="41,52,98,0" Name="button1" VerticalAlignment="Top" Style="{StaticResource SimpleButton}">Cancel</Button>
Compile o projeto.
Abra
Form1
no Designer de Formulários do Windows.O novo estilo é aplicado ao controle de botão.
No menu Depurar, selecione Iniciar Depuração para executar o aplicativo.
Clique nos botões OK e Cancelar e veja as diferenças.
Consulte também
.NET Desktop feedback