Hacer que las aplicaciones WPF se vean estilo Metro, incluso en Windows 7? (Ventana Chrome / Temática / Tema)

Me gusta la ventana cromada en el nuevo Office Suite y Visual Studio:

enter image description here

Todavía estoy desarrollando aplicaciones para Windows 7, pero me pregunto si hay una forma rápida y fácil de hacerlo (léase: estilo WPF o Biblioteca de Windows) para emular este estilo. He hecho algunos diseños de ventana de cromo en el pasado, pero hacer que se vea y se comporte correctamente es realmente complicado.

¿Alguien sabe si hay plantillas o bibliotecas existentes para agregar una apariencia “IU moderna” a mis aplicaciones WPF?

Lo que hice fue crear mi propia ventana y estilo. Porque me gusta tener control sobre todo y no quería algunas bibliotecas externas solo para usar una ventana de él. Miré ya mencionado MahApps.Metro en GitHub

MahApps

y también una interfaz de usuario moderna muy agradable en CodePlex . (.NET4.5 solamente)

UI moderna )

Hay uno más es Elysium pero realmente no probé este.

elíseo

El estilo que hice fue realmente fácil cuando miré cómo se hace en estos. Ahora tengo mi propia ventana y puedo hacer lo que quiera con xaml … para mí es la razón principal por la que hice la mía. Y también hice uno más para ti 🙂 Probablemente debería decir que no podría hacerlo sin explorar Modern UI , fue de gran ayuda. Traté de que se vea como VS2012 Window. Se parece a esto.

Mi ventana

Aquí está el código (tenga en cuenta que está orientando .NET4.5)

public class MyWindow : Window { public MyWindow() { this.CommandBindings.Add(new CommandBinding(SystemCommands.CloseWindowCommand, this.OnCloseWindow)); this.CommandBindings.Add(new CommandBinding(SystemCommands.MaximizeWindowCommand, this.OnMaximizeWindow, this.OnCanResizeWindow)); this.CommandBindings.Add(new CommandBinding(SystemCommands.MinimizeWindowCommand, this.OnMinimizeWindow, this.OnCanMinimizeWindow)); this.CommandBindings.Add(new CommandBinding(SystemCommands.RestoreWindowCommand, this.OnRestoreWindow, this.OnCanResizeWindow)); } private void OnCanResizeWindow(object sender, CanExecuteRoutedEventArgs e) { e.CanExecute = this.ResizeMode == ResizeMode.CanResize || this.ResizeMode == ResizeMode.CanResizeWithGrip; } private void OnCanMinimizeWindow(object sender, CanExecuteRoutedEventArgs e) { e.CanExecute = this.ResizeMode != ResizeMode.NoResize; } private void OnCloseWindow(object target, ExecutedRoutedEventArgs e) { SystemCommands.CloseWindow(this); } private void OnMaximizeWindow(object target, ExecutedRoutedEventArgs e) { SystemCommands.MaximizeWindow(this); } private void OnMinimizeWindow(object target, ExecutedRoutedEventArgs e) { SystemCommands.MinimizeWindow(this); } private void OnRestoreWindow(object target, ExecutedRoutedEventArgs e) { SystemCommands.RestoreWindow(this); } } 

Y aquí los recursos:

  #FF2D2D30 #FF3F3F41 #FF007ACC #FFF4F4F5       

La solución que terminé eligiendo fue MahApps.Metro ( github ), que (después de usarlo en dos piezas de software ahora) considero un excelente kit UI (crédito a Oliver Vogel por la sugerencia) .

Estilo de ventana

Reproduce la aplicación con muy poco esfuerzo y tiene adaptaciones de los controles estándar de Windows 8. Es muy robusto.

Marca de agua de cuadro de texto

Una versión está disponible en Nuget:

Puede instalar MahApps.Metro a través de Nuget usando la GUI (haga clic derecho en su proyecto, administre las referencias de Nuget, busque ‘MahApps.Metro’) o a través de la consola:

PM> Install-Package MahApps.Metro

También es gratis , incluso para uso comercial.

Actualización del 10-29-2013:

Descubrí que la versión Github de MahApps.Metro está repleta de controles y estilos que no están disponibles en la versión nuget actual, que incluyen:

Datagrids:

enter image description here

Ventana limpia:

enter image description here

Flyouts:

enter image description here

Azulejos:

enter image description here

El repository de github es muy activo con bastante contribución de los usuarios. Recomiendo echarle un vistazo.

recomendaría Modern UI for WPF .

¡Tiene un mantenedor muy activo, es increíble y gratis!

Interfaz de usuario moderna para WPF (Captura de pantalla de la aplicación de muestra

Actualmente estoy transfiriendo algunos proyectos a MUI, ¡la primera impresión (y mientras tanto la segunda) es simplemente asombrosa!

Para ver MUI en acción, puedes descargar XAML Spy que está basado en MUI.

EDITAR: Usando Modern UI for WPF hace unos meses y ¡me encanta!

Basado en la respuesta de Viktor La Croix con la fuente anterior, lo cambiaría para usar lo siguiente:

Ejemplo de Marlett Font

Es una mejor práctica utilizar la fuente Marlett en lugar de puntos de datos de ruta para los botones Minimizar, Restaurar / Maximizar y Cerrar.

            

Si está dispuesto a pagar, le recomiendo encarecidamente Telerik Components para WPF . Ofrecen excelentes estilos / temas y tienen temas específicos para ambos, Office 2013 y Windows 8 (EDIT: y también un estilo temático de Visual Studio 2013). Sin embargo, ofrece mucho más que estilos, de hecho, obtendrá un montón de controles que son realmente útiles.

Así es como se ve en acción (Capturas de pantalla tomadas de muestras de telerik):

Muestra Telerik Dashboard

Muestra del Tablero de Telerik CRM

Aquí están los enlaces a la muestra del panel ejecutivo de telerik (primera captura de pantalla) y aquí para el panel de CRM (segunda captura de pantalla).

Ofrecen una prueba de 30 días, ¡solo pruébalo!