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


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

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

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

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

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

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

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

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

    • WindowsFormsIntegration

    • System.Windows.Forms

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

  4. В окне "Свойства" задайте значения свойств Height и Width на Авто.

  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 окрашен в системный стиль по умолчанию.

См. также