Exemplarische Vorgehensweise: Formatieren von WPF-Inhalt
In diesem Artikel wird veranschaulicht, wie eine Formatvorlage auf ein WPF-Steuerelement (Windows Presentation Foundation) angewendet wird, das in einem Windows Form-Objekt gehostet wird.
Voraussetzungen
Sie benötigen Visual Studio, um diese Anleitung abzuschließen.
Erstellen Sie das Projekt
Öffnen Sie Visual Studio, und erstellen Sie ein neues Windows Forms Application-Projekt in Visual Basic oder Visual C# mit dem Namen StylingWpfContent
.
Anmerkung
Beim Hosten von WPF-Inhalten werden nur C#- und Visual Basic-Projekte unterstützt.
Erstellen Sie die WPF-Steuerelementtypen
Nachdem Sie dem Projekt ein WPF-Steuerelement hinzugefügt haben, können Sie dieses in einem ElementHost-Steuerelement hosten.
Fügen Sie der Lösung ein neues WPF-UserControl-Projekt hinzu. Verwenden Sie den Standardnamen für den Steuerelementtyp
UserControl1.xaml
. Weitere Informationen finden Sie unter Exemplarische Vorgehensweise: Erstellen neuer WPF-Inhalte in Windows Forms zur Entwurfszeit.Stellen Sie in der Entwurfsansicht sicher, dass
UserControl1
ausgewählt ist.Legen Sie im Fenster Eigenschaften den Wert der eigenschaften Width und Height auf 200fest.
Fügen Sie UserControl ein System.Windows.Controls.Button-Steuerelement hinzu, und legen Sie den Wert der Eigenschaft Content auf Cancel (Abbrechen) fest.
Fügen Sie UserControl ein zweites System.Windows.Controls.Button-Steuerelement hinzu, und legen Sie den Wert der Eigenschaft Content auf OK fest.
Kompilieren Sie das Projekt.
Anwenden einer Formatvorlage auf ein WPF-Steuerelement
Sie können unterschiedliche Formatierungen auf ein WPF-Steuerelement anwenden, um das Aussehen und Verhalten zu ändern.
Öffnen Sie
Form1
im Windows Forms-Designer.Doppelklicken Sie in der Toolbox auf
UserControl1
, um eine Instanz vonUserControl1
im Formular zu erstellen.Eine Instanz von
UserControl1
wird in einem neuen ElementHost-Steuerelement namenselementHost1
gehostet.Klicken Sie im Smarttagbereich für
elementHost1
in der Dropdownliste auf Gehosteten Inhalt bearbeiten.UserControl1
wird im WPF-Designer geöffnet.Fügen Sie den folgenden XAML-Code in der XAML-Ansicht hinter dem
<UserControl>
-Starttag ein. Dieser XAML-Code erstellt einen Farbverlauf mit kontrastreichem Farbverlaufsrand. Wenn das Steuerelement angeklickt wird, werden die Farbverläufe geändert, um den Eindruck einer gedrückten Schaltfläche zu generieren. Weitere Informationen finden Sie unter Erstellen von Formaten und Vorlagen.<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>
Wenden Sie die im vorherigen Schritt definierte
SimpleButton
-Formatvorlage auf die „Cancel“-Schaltfläche an, indem Sie den folgenden XAML-Code im<Button>
-Tag der Cancel-Schaltfläche einfügen.Style="{StaticResource SimpleButton}
Ihre Schaltflächendeklaration wird in etwa so aussehen wie das folgende XAML:
<Button Height="23" Margin="41,52,98,0" Name="button1" VerticalAlignment="Top" Style="{StaticResource SimpleButton}">Cancel</Button>
Kompilieren Sie das Projekt.
Öffnen Sie
Form1
im Windows Forms-Designer.Die neue Formatvorlage wird auf das Schaltflächensteuerelement angewendet.
Wählen Sie im Menü Debuggen die Option Debuggen starten aus, um die Anwendung auszuführen.
Klicken Sie auf die Schaltflächen OK und Cancel (Abbrechen), und beobachten Sie die Unterschiede.
Weitere Informationen
.NET Desktop feedback