WPF Apps im Metro / Windows 8 Look mit MahApps.Metro

image_thumb.png

Es gibt sie noch – die großen WPF Applikationen, welche mehr Funktionalität brauchen als es momentan über den normalen “Windows 8” Store möglich ist. Dennoch lässt sich natürlich auch da das Aussehen an den “Windows 8 Style”  aka “Metro” anpassen.

Bei dem Blogpost der “Rahmenlosen” WPF Fenster habe ich ja bereits einige Beispiele erwähnt welche den Metro-Style auch in einer Desktop-Applikation anwenden:

Den Weg zum Metro / Windows 8 Design

Ganz wichtig (und ich widerhole es noch unten) : Wer seine WPF App in dem Metro Style (ich schwanke noch zwischen der Metro Bezeichnung und Windows 8 Style ;) ) umsetzen möchte, sollte sich ein paar Gedanken dazu gemacht haben. Metro ist mehr als Ecken und Kanten. MahApps.Metro ist nur ein Tool – den Design-Prozess müsst ihr selber erledigen.

MahApps.Metro

image

MahApps.Metro ist eine Library, welche eine WPF App recht schnell in den Metro Style umwandeln kann. Es bringt allerhand Controls, Styles und sogar Icons mit und wird auch über NuGet bereitgestellt. Der Code steht auf GitHub zur Verfügung.

Das ganze animiert:

Demo:

Um das mal nachzuvollziehen wollen wir diese App etwas mehr im “Metro” / “Windows 8 Style” glänzen lassen.

image 

Der Code dazu:

<Window x:Class="MetroWpf.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">
    <StackPanel Margin="50">
        <Label Margin="10">Hello World!</Label>
        <TextBox Margin="10"></TextBox>
        <DatePicker Margin="10" />
        <Button Margin="10">Click Me</Button>
    </StackPanel>
</Window>

Jetzt fügen wir das NuGet Package hinzu:

image

Und machen wenige Anpassungen:

<Controls:MetroWindow x:Class="MetroWpf.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
        Title="MainWindow" Height="350" Width="525">
    <StackPanel Margin="50">
        <Label Margin="10">Hello World!</Label>
        <TextBox Margin="10"></TextBox>
        <DatePicker Margin="10" />
        <Button Margin="10">Click Me</Button>
    </StackPanel>
</Controls:MetroWindow>

Und in der Code-Behinde:

    public partial class MainWindow : MetroWindow
    {
        public MainWindow()
        {
            InitializeComponent();
        }
    }

Erstes Ergebnis:

image

Jetzt noch den Style ändern (direkt unterhalb des MetroWindow Element einfügen) :

    <Window.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colours.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/Blue.xaml" />
                <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Window.Resources>

Resultat:

image

Für wenige Handgriffe: Ganz nett. In der Doku ist noch mehr Beschrieben – das ist ja ein recht triviales Beispiel was ich hier gebaut hab. Die Demo App welche dem Quellcode von MahApps beiliegt zeigt ziemlich eindrucksvoll wie man z.B. auch ein VS 2012 nachbauen könnte:

image

Wer WPF Apps in diesem Style machen möchte – der sollte sich diese Bibliothek mal ansehen.

WICHTIG: Nur das Styling macht noch keine Metro App aus!

Nur weil man das aussehen “kantiger” macht ist es natürlich noch keine Metro App. Hier muss man sich intensiv Gedanken machen, wie meine Applikation in die “Metro”-Schiene hineinpasst. MahApps kann bei der Realisierung allerdings eine Hilfe sein.

Links

Doku MahApps

GitHub MahApps

Meine Demo App auf GitHub

Happy Coding

Wenn dir der Blogpost gefallen hat, dann hinterlasse doch einen Kommentar. Wenn du auf dem Laufenden bleiben willst, abonniere unseren RSS Feed oder folge uns auf Twitter.

About the author

Written by Robert Mühsig

Hi, ich bin Robert Mühsig und bin Webentwickler und beschäftige mich mit Web-Frameworks auf dem Microsoft Web Stack und scheue mich auch nicht vor Javascript. Der Blog begann als "Problemsammelstelle und Lösungshilfe" und seitdem schreibe ich hier alles auf. Seit 2008 bin ich Microsoft MVP für ASP.NET. Treffen kann man mich online via Twitter (@robert0muehsig) oder hier.

2 Responses

Comment on this post

Letzte Posts

  • image.png
    IIS & Windows Authentication – Troubleshooting mit Negotiate & NTLM

    Windows Authentifizierung ist eine einfache (und naheliegende) Authentifizierungs-Option für “Haus-interne” Webapplikationen. Setup Im IIS selbst kann man die Windows Authentifzierung sehr leicht anschalten: Natürlich kann man dies auch über die web.config steuern: <system.web> ... <authentication mode="Windows"/> ... </system.web> ... Fehlermeldung “HTTP Error 401.2 – Unauthorized”: Dies kann (wie fast immer) viele Gründe haben, z.B. weil ...

  • image.png
    Json-Online-Tools: Viewer & Json2Csharp Generator

    Wo APIs im Spiel sind, ist das JSON Format nicht weit. Da ich immer mal wieder zwei Tools benutze, möchte ich diese hier auch mal kurz würdigen. JSON Viewer Wer nur den JSON-Text vor sich hat sieht meist die Struktur nicht. Über JSON Viewer kann man sich recht einfach einen Überblick verschaffen: [URL] JSON2CSharp Der ...

  • image.png
    Tools & Vorgehen für Entwicklung rund um OpenXml oder wie erstelle ich Office Dokumente mit .NET?

    Durch meine Tätigkeit bei der  OneOffixx AG habe ich recht tiefe Einblicke in die Erstellung von Microsoft Office Dokumente mit .NET bekommen. Da das Problem “Office Dokumente per Code” zu erstellen recht verbreitet ist, schreib ich mal Empfehlungen für die ersten Schritte. Must Have Tools Ganz klar sollte man das Office in der jeweiligen Version ...

  • image.png
    Windows Phone SDK- & “System”-Icons

    Zwar legt das Metro Design viel Wert auf Typografie – jedoch sind auch Icons sehr wichtig. Wer das Windows Phone SDK installiert hat, bekommt 36 Icons mitgeliefert. Diese sind unter diesem Pfad zu finden: C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v8.0\Icons Viele Icons, welche man von den eingebauten Anwendungen kennt, sind allerdings nicht enthalten. Pedro Lamas hat ...

  • image.png
    Wie finde ich heraus ob mein ADFS 2.0 funktioniert?

    Ich hatte mich recht lange mti dem Thema ADFS 2.0 (“Active Directory Federation Services”) beschäftigt und da kam die recht einfache Frage auf: Wie stelle ich fest ob die Verbindung zwischen ADFS und AD “funktioniert”? Hier eine simple Variante es zu testen… Was ist ein ADFS überhaupt? Wenn man über AD-Grenzen hinweg “Vertrauensstellungen” braucht, dann ...

Unterstützt von…

Facebook