Compartir a través de


Cómo: Habilitar estilos visuales en una aplicación híbrida

Actualización: noviembre 2007

En este tema se muestra cómo habilitar los estilos visuales de Microsoft Windows XP en un control de formularios Windows Forms hospedado en una aplicación basada en WPF.

Si la aplicación llama al método EnableVisualStyles, la mayoría de los controles de formularios Windows Forms usarán automáticamente estilos visuales cuando la aplicación se ejecute en Microsoft Windows XP. Para obtener más información, consulte Representar controles con estilos visuales.

Para obtener una lista de código completa de las tareas ilustradas en este tema, consulte Ejemplo Enabling Visual Styles in a Hybrid Application.

Nota

Los cuadros de diálogo y los comandos de menú que se ven pueden diferir de los descritos en la Ayuda, dependiendo de los valores de configuración o de edición activos. Para cambiar la configuración, elija Importar y exportar configuraciones en el menú Herramientas.

Habilitar los estilos visuales de formularios Windows Forms

Para habilitar los estilos visuales de formularios Windows Forms

  1. Cree un proyecto de aplicación de WPF denominado HostingWfWithVisualStyles.

  2. En el Explorador de soluciones, agregue una referencia al ensamblado WindowsFormsIntegration, denominado WindowsFormsIntegration.dll.

    La ubicación predeterminada para este archivo es %Archivos de programa%\Reference Assemblies\Microsoft\Framework\v3.0\WindowsFormsIntegration.dll.

  3. En el Explorador de soluciones, agregue una referencia al ensamblado formularios Windows Forms, denominado System.Windows.Forms.dll.

  4. En el Cuadro de herramientas, haga doble clic en el icono Grid para colocar un elemento Grid en la superficie de diseño.

  5. En la ventana Propiedades, establezca los valores de las propiedades Height y Width en Auto.

  6. Abra Window1.xaml en el Editor de código.

  7. Inserte el siguiente ejemplo de código a fin de asociar un controlador para el evento Loaded.

    <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. Abra Window1.xaml.cs en el Editor de código.

  9. Inserte el código siguiente para controlar el evento Loaded.

    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. Presione F5 para generar y ejecutar la aplicación.

    El control de formularios Windows Forms se pinta con estilos visuales.

Deshabilitar los estilos visuales de formularios Windows Forms

Para deshabilitar los estilos visuales, basta con quitar la llamada al método EnableVisualStyles.

Para deshabilitar los estilos visuales de formularios Windows Forms

  1. Abra Window1.xaml.cs en el Editor de código.

  2. Marque como comentario la llamada al método EnableVisualStyles.

  3. Presione F5 para generar y ejecutar la aplicación.

    El control formularios Windows Forms se pinta con el estilo predeterminado del sistema.

Vea también

Tareas

Tutorial: Hospedar un control de formularios Windows Forms en Windows Presentation Foundation

Conceptos

Representar controles con estilos visuales

Referencia

EnableVisualStyles

System.Windows.Forms.VisualStyles

WindowsFormsHost

Otros recursos

Temas "Cómo..." de migración e interoperabilidad