Поделиться через


Практическое руководство. Включение визуальных стилей в гибридном приложении

В этом разделе показано включение визуальных стилей в элементе управления Windows Forms, размещенном в приложении на базе WPF.

Если ваше приложение вызывает метод EnableVisualStyles, большинство ваших элементов управления Windows Forms будут автоматически использовать визуальные стили. Дополнительные сведения см. в статье Rendering Controls with Visual Styles (Отрисовка элементов управления со стилями оформления).

Полный пример кода для задач, проиллюстрированных в этом разделе, см. в разделе Пример включения визуальных стилей в гибридном приложении.

Включение визуальных стилей Windows Forms

Чтобы включить визуальные стили Windows Forms, выполните следующие действия.

  1. Создайте проект приложения WPF с именем HostingWfWithVisualStyles.

  2. В обозревателе решений добавьте ссылки на следующие сборки.

    • WindowsFormsIntegration

    • System.Windows.Forms.

  3. На панели элементов дважды щелкните значок Grid, чтобы разместить элемент Grid на поверхности разработки.

  4. В окне свойств присвойте свойствам Height и Width значение Auto.

  5. В представлении конструирования или XAML выделите Window.

  6. В окне свойств щелкните вкладку События.

  7. Дважды щелкните событие Loaded.

  8. В файле MainWindow.xaml.vb или MainWindow.xaml.cs вставьте следующий код для обработки события Loaded.

    private void Window_Loaded(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);
    }
    
    Private Sub Window_Loaded(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
    
  9. Нажмите клавишу F5 для сборки и запуска приложения.

    Элемент управления Windows Forms отрисовывается с визуальными стилями.

Отключение визуальных стилей Windows Forms

Чтобы отключить визуальные стили, просто удалите вызов метода EnableVisualStyles.

Чтобы отключить визуальные стили Windows Forms, выполните следующие действия.

  1. Откройте файл MainWindow.xaml.vb или MainWindow.xaml.cs в редакторе кода.

  2. Закомментируйте вызов метода EnableVisualStyles.

  3. Нажмите клавишу F5 для сборки и запуска приложения.

    Элемент управления Windows Forms отрисовывается с системным стилем по умолчанию.

См. также