Visual Studio 2012 Metro Styles für WPF–Metro Window Update

Der letzte Schliff für meine Visual Studio 2012 Metro Styles ist natürlich das MetroWindow, was dann wirklich die ganze Anwendung im typischen Grauton erscheinen lässt. Glücklicherweise gibt es bereits ein Projekt, dass sich um die Implementierung eines solchen MetroWindows gekümmert hat, nämlich das MahApps.Metro Projekt. Den Style von dort können wir ganz einfach an unsere Wünsche anpassen, indem wir folgende Resourcen überschreiben:

<Color x:Key="AccentColor">#2D2D30</Color>
<Color x:Key="WhiteColor">#2D2D30</Color>
<Color x:Key="BlackColor">#FFFFFFFF</Color>

Screen1Screen2

AccentColor setzt den Hintergrund der Titelleiste (mit Schließen, Minimieren … Buttons) und WhiteColor legt den Window-Hintergrund fest. Die beiden sind in unserem Fall gleich. BlackColor ist der Vordergrund für das MetroWindow.

Download

Meine Visual Studio Styles sind jetzt auch Teil des MahApps.Metro Projekts und können also vom GitHub Repository mit runtergeladen werden. Wer also den Sourcecode für das MetroWindow und die VS Styles haben möchte, kann sich das Repository hier auschecken. Die VS Styles liegen dann unter MahApps.Metro/Styles/VS, das Beispielfenster findet man unter MetroDemo (wichtig für alle StarTreck Fans: Käptn Kirk schläft immer noch). Für das MahApps.Metro Projekt hab ich zusätzlich noch eine System.Windows.Interactivity-TriggerAction gebastelt, um die Tabs zu schließen, wenn das jemanden interessiert .. im normalen Download ist die aber nicht dabei (der soll ja nur die Styles zeigen).

Ansonsten hab ich natürlich auch den Artikel und den direkten Download aktualisiert, die MahApps.Metro.dll liegt dann im lib Verzeichnis:

Direkter Download

Codeproject Artikel

Visual Studio 2012 Metro Styles für WPF–Teil 1

Obwohl viele bei dem Wort “Metro” wahrscheinlich an Windows 8 und an das “Kachelwand”-Startmenü denken werden, folgt auch der Visual Studio 2012 Style dem Metro-Prinzip.

Weil sich dieser VS-Metro-Style für komplizierte Anwendungen, die nicht unbedingt dafür gedacht sind auf irgendwelchen Smartphones oder so zu laufen, viel besser eignet, habe ich ein paar Styles für Standard Controls und eine Beispielanwendung dazu gebastelt.

Screenshots

Screen1Screen2

Übersicht

Die Styles sind in mehrere ResourceDictionaries aufgeteilt. Für jedes Control gibt es ein eigenes Dictionary. Die Styles sind jeweils mit einem Schlüssel versehen, sodass man sie explizit referenzieren muss. Das “Styles.xaml” ResourceDictionary fasst alle Styles zusammen und setzt sie als Standard (ohne Key).

Komplettes Styleset verwenden

App.xaml:

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="pack://application:,,,/Selen.Wpf.SystemStyles;component/Styles.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

 

Nur Teile davon

App.xaml:

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary 
                Source="pack://application:,,,/Selen.Wpf.SystemStyles;component/ButtonStyles.xaml"/>
            <ResourceDictionary 
                Source="pack://application:,,,/Selen.Wpf.SystemStyles;component/TextBoxStyles.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

 

Bei Verwendung explizit referenzieren:

<Button Content="blastallenemies.cmd" Style="{StaticResource LinkButton}"/>

 

Liste der Styles (Typ und Key)

TargetType Key
Button StandardButton
Button LinkButton
TabControl StandardTabControl
Menu StandardMenu
ListBox StandardListBox
ScrollBar StandardScrollBar
TextBox StandardTextBox
TextBox SearchTextBox

Download

Direkter Download

Codeproject Artikel