Procedura dettagliata: applicazione di stili al contenuto Windows Presentation Foundation
Aggiornamento: novembre 2007
In questa procedura dettagliata viene illustrato come applicare gli stili a un controllo Windows Presentation Foundation (WPF) incluso in un Windows Form.
In questa procedura dettagliata vengono eseguite le attività seguenti:
Creare il progetto.
Creare i tipi di controllo WPF.
Applicare uno stile a un controllo WPF.
![]() |
---|
È possibile che le finestre di dialogo e i comandi di menu visualizzati siano diversi da quelli descritti nella Guida, a seconda delle impostazioni attive o dell'edizione del programma. Per modificare le impostazioni, scegliere Importa/esporta impostazioni dal menu Strumenti. Per ulteriori informazioni, vedere Impostazioni di Visual Studio. |
Prerequisiti
Per completare questa procedura dettagliata, è necessario disporre dei seguenti componenti:
- Visual Studio 2008.
Creazione del progetto
Il primo passaggio consiste nella creazione del progetto Windows Form.
![]() |
---|
Con il contenuto WPF sono supportati solo progetti C# e Visual Basic. |
Per creare il progetto
- Creare un nuovo progetto di applicazione Windows Form, denominato StylingWpfContent, in Visual Basic o Visual C#. Per ulteriori informazioni, vedere Procedura: creare un progetto applicazione Windows.
Creazione di tipi di controlli WPF
Dopo avere aggiunto un tipo di controllo WPF al progetto, è possibile includerlo in un controllo ElementHost.
Per creare tipi di controlli WPF
Aggiungere un nuovo controllo UserControl WPF al progetto. Utilizzare il nome predefinito per il tipo di controllo, ovvero UserControl1.xaml. Per ulteriori informazioni, vedere Procedura dettagliata: creazione di nuovo contenuto Windows Presentation Foundation in Windows Form in fase di progettazione.
In visualizzazione Progettazione verificare che UserControl1 sia selezionato. Per ulteriori informazioni, vedere Procedura: selezionare e spostare elementi sull'area di progettazione.
Nella finestra Proprietà impostare il valore delle proprietà Width e Height su 200.
Aggiungere un controllo System.Windows.Controls.Button a UserControl e impostare il valore della proprietà Content su Cancel.
Aggiungere un secondo controllo System.Windows.Controls.Button a UserControl e impostare il valore della proprietà Content su OK.
Generare il progetto.
Applicazione di un stile a un controllo WPF
È possibile applicare un altro stile a un controllo WPF per modificarne l'aspetto e il comportamento.
Per applicare uno stile a un controllo WPF
Aprire Form1 in Progettazione Windows Form.
Nella Casella degli strumenti fare doppio clic su UserControl1 per creare un'istanza di UserControl1 sul form.
Un'istanza di UserControl1 viene inclusa in un nuovo controllo ElementHost denominato elementHost1.
Nel pannello smart tag per elementHost1, scegliere Modifica contenuto ospitato dall'elenco a discesa.
UserControl1 verrà visualizzato in WPF Designer.
In visualizzazione XAML inserire il seguente codice XAML dopo il tag di apertura <UserControl>:
Questo codice XAML crea una sfumatura con un bordo sfumato contrastante. Dopo aver fatto clic sul controllo, le sfumature cambiano per generare un aspetto del pulsante premuto. Per ulteriori informazioni, vedere Applicazione di stili e modelli.
[xaml]
<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>
[xaml]
<Button Height="23" Margin="41,52,98,0" Name="button1" VerticalAlignment="Top"
Style="{StaticResource SimpleButton}">Cancel</Button>
Vedere anche
Concetti
Applicazione di stili e modelli