Condividi tramite


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.

Nota:

È 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.

Nota:

Con il contenuto WPF sono supportati solo progetti C# e Visual Basic.

Per creare il progetto

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

  1. 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.

  2. In visualizzazione Progettazione verificare che UserControl1 sia selezionato. Per ulteriori informazioni, vedere Procedura: selezionare e spostare elementi sull'area di progettazione.

  3. Nella finestra Proprietà impostare il valore delle proprietà Width e Height su 200.

  4. Aggiungere un controllo System.Windows.Controls.Button a UserControl e impostare il valore della proprietà Content su Cancel.

  5. Aggiungere un secondo controllo System.Windows.Controls.Button a UserControl e impostare il valore della proprietà Content su OK.

  6. 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

  1. Aprire Form1 in Progettazione Windows Form.

  2. 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.

  3. Nel pannello smart tag per elementHost1, scegliere Modifica contenuto ospitato dall'elenco a discesa.

    UserControl1 verrà visualizzato in WPF Designer.

  4. 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

Cenni preliminari su XAML

Applicazione di stili e modelli

Riferimenti

ElementHost

WindowsFormsHost

Altre risorse

Migrazione e interoperabilità

Utilizzo dei controlli Windows Presentation Foundation

Progettazione WPF