Gewusst wie: Aktivieren von visuellen Stilen in einer Hybridanwendung

Aktualisiert: November 2007

Dieses Thema veranschaulicht, wie visuelle Microsoft Windows XP Stile für ein Windows Forms-Steuerelement aktiviert werden, das in einer WPF-basierten Anwendung gehostet wird.

Wenn die Anwendung die EnableVisualStyles-Methode aufruft, werden für die meisten Windows Forms-Steuerelemente automatisch visuelle Stile verwendet, sofern die Anwendung unter Microsoft Windows XP ausgeführt wird. Weitere Informationen finden Sie unter Rendering von Steuerelementen mit visuellen Stilen.

Eine vollständige Codeauflistung der in diesem Thema veranschaulichten Aufgaben finden Sie unter Beispiel zum Aktivieren von visuellen Stilen in einer Hybridanwendung.

Tipp

Die angezeigten Dialogfelder und Menübefehle können sich je nach den aktiven Einstellungen oder der verwendeten Version von den in der Hilfe beschriebenen unterscheiden. Wählen Sie im Menü Extras die Option Einstellungen importieren und exportieren aus, um die Einstellungen zu ändern.

Aktivieren von visuellen Windows Forms-Stilen

So aktivieren Sie visuelle Windows Forms-Stile

  1. Erstellen Sie ein WPF-Anwendungsprojekt mit dem Namen HostingWfWithVisualStyles.

  2. Fügen Sie im Projektmappen-Explorer einen Verweis auf die WindowsFormsIntegration-Assembly mit dem Namen WindowsFormsIntegration.dll hinzu.

    Der Standardspeicherort für diese Datei ist %programfiles%\Reference Assemblies\Microsoft\Framework\v3.0\WindowsFormsIntegration.dll.

  3. Fügen Sie im Projektmappen-Explorer einen Verweis auf die Windows Forms-Assembly mit dem Namen System.Windows.Forms.dll hinzu.

  4. Doppelklicken Sie in der Toolbox auf das Symbol Grid, um ein Grid-Element auf der Entwurfsoberfläche zu platzieren.

  5. Legen Sie im Eigenschaftenfenster den Wert der Height-Eigenschaft und der Width-Eigenschaft auf Auto fest.

  6. Öffnen Sie Window1.xaml im Code-Editor.

  7. Fügen Sie den folgenden Code ein, um einen Ereignishandler für das Loaded-Ereignis anzufügen.

    <Window x:Class="Window1"
        xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
        Title="HostingWfWithVisualStyles" Height="300" Width="300"
        Loaded="WindowLoaded"
        >
    
    <Window x:Class="HostingWfWithVisualStyles.Window1"
        xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
        Title="HostingWfWithVisualStyles" Height="300" Width="300"
        Loaded="WindowLoaded"
        >
    
  8. Öffnen Sie Window1.xaml.cs im Code-Editor.

  9. Fügen Sie folgenden Code ein, um das Loaded-Ereignis zu behandeln.

    Private Sub WindowLoaded(ByVal sender As Object, ByVal e As RoutedEventArgs)
        ' Comment out the following line to disable visual
        ' styles for the hosted Windows Forms control.
        System.Windows.Forms.Application.EnableVisualStyles()
    
        ' Create a WindowsFormsHost element to host
        ' the Windows Forms control.
        Dim host As New System.Windows.Forms.Integration.WindowsFormsHost()
    
        ' Create a Windows Forms tab control.
        Dim tc As New System.Windows.Forms.TabControl()
        tc.TabPages.Add("Tab1")
        tc.TabPages.Add("Tab2")
    
        ' Assign the Windows Forms tab control as the hosted control.
        host.Child = tc
    
        ' Assign the host element to the parent Grid element.
        Me.grid1.Children.Add(host)
    
    End Sub
    
    private void WindowLoaded(object sender, RoutedEventArgs e)
    {
        // Comment out the following line to disable visual
        // styles for the hosted Windows Forms control.
        System.Windows.Forms.Application.EnableVisualStyles();
    
        // Create a WindowsFormsHost element to host
        // the Windows Forms control.
        System.Windows.Forms.Integration.WindowsFormsHost host = 
            new System.Windows.Forms.Integration.WindowsFormsHost();
    
        // Create a Windows Forms tab control.
        System.Windows.Forms.TabControl tc = new System.Windows.Forms.TabControl();
        tc.TabPages.Add("Tab1");
        tc.TabPages.Add("Tab2");
    
        // Assign the Windows Forms tab control as the hosted control.
        host.Child = tc;
    
        // Assign the host element to the parent Grid element.
        this.grid1.Children.Add(host);
    }
    
  10. Drücken Sie F5, um die Anwendung zu erstellen und auszuführen.

    Das Windows Forms-Steuerelement wird mit visuellen Stilen gezeichnet.

Deaktivieren von visuellen Windows Forms-Stilen

Um visuelle Stile zu deaktivieren, entfernen Sie einfach den Aufruf der EnableVisualStyles-Methode.

So deaktivieren Sie visuelle Windows Forms-Stile

  1. Öffnen Sie Window1.xaml.cs im Code-Editor.

  2. Kommentieren Sie den Aufruf der EnableVisualStyles-Methode aus.

  3. Drücken Sie F5, um die Anwendung zu erstellen und auszuführen.

    Das Windows Forms-Steuerelement wird mit dem Standardsystemstil gezeichnet.

Siehe auch

Aufgaben

Exemplarische Vorgehensweise: Hosten eines Windows Forms-Steuerelements in Windows Presentation Foundation

Konzepte

Rendering von Steuerelementen mit visuellen Stilen

Referenz

EnableVisualStyles

System.Windows.Forms.VisualStyles

WindowsFormsHost

Weitere Ressourcen

Gewusst-wie-Themen zu Migration und Interoperabilität