Home Assistant Fácil

Curso de Home Assistant y domótica

  • Blog
  • Soy un pardillo
  • Podcast
  • Curso Arduino
  • Curso Domótica
  • Acceder
Usted está aquí: Inicio / Tutoriales / Fragmentos / WPF / Configurar Mahapps Metro para WPF

Configurar Mahapps Metro para WPF

Comentarios(4)
Luis del Valle Hernández

En este fragmento vamos a ver como debemos configurar Mahapps Metro para utilizarlo en nuestra aplicación WPF. Lo primero que debemos tener en cuenta es descargar la última versión del framework, para ello nos vamos al proyecto y pulsamos botón derecho para que nos muestre las opciones y seleccionamos Manage Nugets Packages…

mahapps-metro-wpf-01

Se nos abre la ventana de Nuget, el gestor de paquetes donde debemos buscar en el apartado on-line e instalar dos paquetes de Mahapps Metro.

mahapps-metro-wpf-02
  1. Seleccionar online
  2. Escribir en el campo de texto «mahapps metro»
  3. Instalar estos dos paquetes. El primer paquete es el propio framework y el segundo paquete son las imágenes que se pueden utilizar en la aplicación. Se instala como un recurso.

Al final de la instalación nos tiene que aparecer de la siguiente manera.

mahapps-metro-wpf-03

Solo nos queda configurar nuestro proyecto para tener acceso a toda las mejoras de la interfaz gráfica que nos aporta Mahapps. Para ello debemos editar el archivo App.xaml y añadir el siguiente código.

<Application x:Class="WpfFragmentos.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             StartupUri="MainWindow.xaml">
    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml" />
                <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" />
                <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
                <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Green.xaml" />
                <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" />
                <ResourceDictionary Source="/Resources/Icons.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Application.Resources>
</Application>

Por último vamos a cambiar la ventana que se crea por defecto cuando creamos una aplicación WPF. El código XAML que genera por defecto es el siguiente.

<Window x:Class="WpfFragmentos.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <StackPanel Orientation="Vertical" HorizontalAlignment="Center" VerticalAlignment="Center">
            <TextBox Text="Introduce el texto" Width="150"/>
            <Button Content="Pulsa" Margin="0,5,0,0"/>
            <ToggleButton Content="Toggle" Margin="0,5,0,0"/>
        </StackPanel>
    </Grid>
</Window>

Lo sustituimos por el siguiente.

<Controls:MetroWindow x:Class="WpfFragmentos.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:Controls="http://metro.mahapps.com/winfx/xaml/controls"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <StackPanel Orientation="Vertical" HorizontalAlignment="Center" VerticalAlignment="Center">
            <TextBox Text="Introduce el texto" Width="150"/>
            <Button Content="Pulsa" Margin="0,5,0,0"/>
            <ToggleButton Content="Toggle" Margin="0,5,0,0"/>
        </StackPanel>
    </Grid>
</Controls:MetroWindow>

Además tenemos que cambiar la clase de la que deriva nuestra ventana por la clase MetroWindow en el CS. El código final que tendría que tener este archivo CS sería el siguiente.

using MahApps.Metro.Controls;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace WpfFragmentos
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : MetroWindow
    {
        public MainWindow()
        {
            InitializeComponent();
        }
    }
}

Aquí os dejamos las dos imágenes la primera es como quedaría nuestra aplicación sin usar Mahapps Metro y la segunda sería utilizando este framework.

mahapps-metro-wpf-04
mahapps-metro-wpf-05

Como podréis ver la diferencia es enorme y esto solo es una muestra. Las posibilidades que tenemos con WPF son inmesas, poco a poco las iremos viendo.

home assistant 2026.7

Automatizaciones Home Assistant 2026.7: por fin hablan en humano

¿Cuántas veces te has sentado delante del ordenador para hacer una triste automatización y has acabado queriendo tirar el teclado por la ventana? Eso … [+ info...]

comparativa home assistant y homey

Comparativa Home Assistant y Homey: qué sistema domótico comprar

Comparativa Home Assistant y Homey: si estás pensando en montar una casa inteligente de verdad, tarde o temprano te vas a encontrar con esta duda. ¿Me … [+ info...]

camaras de seguridad para casa

Cámaras de seguridad para casa: 5 pilares para no caer en la trampa del Prime Day

Llevas semanas pensando en poner cámaras de seguridad para casa y llega el Prime Day. Entras en Amazon, buscas y aparecen miles de resultados: WiFi, … [+ info...]

Copyright © 2026 · Programar Fácil · Aviso legal

Utilizamos cookies para ofrecerte la mejor experiencia en nuestra web.

Puedes aprender más sobre qué cookies utilizamos o desactivarlas en los .

Resumen de privacidad

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.

Cookies estrictamente necesarias

Las cookies estrictamente necesarias tiene que activarse siempre para que podamos guardar tus preferencias de ajustes de cookies.

Cookies de terceros

Esta web utiliza Google Tag Manager para recopilar información anónima tal como el número de visitantes del sitio, o las páginas más populares.

Dejar esta cookie activa nos permite mejorar nuestra web.