Практическое руководство. Включение визуальных стилей в гибридном приложении
В этом разделе показано включение визуальных стилей в элементе управления Windows Forms, размещенном в приложении на базе WPF.
Если ваше приложение вызывает метод EnableVisualStyles, большинство ваших элементов управления Windows Forms будут автоматически использовать визуальные стили. Дополнительные сведения см. в статье Rendering Controls with Visual Styles (Отрисовка элементов управления со стилями оформления).
Полный пример кода для задач, проиллюстрированных в этом разделе, см. в разделе Пример включения визуальных стилей в гибридном приложении.
Включение визуальных стилей Windows Forms
Чтобы включить визуальные стили Windows Forms, выполните следующие действия.
Создайте проект приложения WPF с именем
HostingWfWithVisualStyles
.В обозревателе решений добавьте ссылки на следующие сборки.
WindowsFormsIntegration
System.Windows.Forms.
На панели элементов дважды щелкните значок Grid, чтобы разместить элемент Grid на поверхности разработки.
В окне свойств присвойте свойствам Height и Width значение Auto.
В представлении конструирования или XAML выделите Window.
В окне свойств щелкните вкладку События.
Дважды щелкните событие Loaded.
В файле 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
Нажмите клавишу F5 для сборки и запуска приложения.
Элемент управления Windows Forms отрисовывается с визуальными стилями.
Отключение визуальных стилей Windows Forms
Чтобы отключить визуальные стили, просто удалите вызов метода EnableVisualStyles.
Чтобы отключить визуальные стили Windows Forms, выполните следующие действия.
Откройте файл MainWindow.xaml.vb или MainWindow.xaml.cs в редакторе кода.
Закомментируйте вызов метода EnableVisualStyles.
Нажмите клавишу F5 для сборки и запуска приложения.
Элемент управления Windows Forms отрисовывается с системным стилем по умолчанию.
См. также
.NET Desktop feedback