Hallo,
es kommt ziemlich häufig vor, dass ein Programm im Showroom WinForms + Metro Style benutzt. Ich denke, dass zeugt aus der Vorstellung, dass es in WPF (noch) schwieriger sei. Also will ich in diesem kleinen Tutorial vom Gegenteil überzeugen. Ihr schafft es mit wenigen Zeilen Code, alle Controls Metro-Stylisch aussehen zu lassen. Ich werde in diesem "Tutorial" zwei Vorgehensweisen nennen und 3 Metro Stiles vorstellen. Aber von vorne. Warum ist WPF für einen anderen Style besser geeignet als WinForms?:
Okay, also werde ich jetzt Schritt für Schritt erklären, wie ihr an den ersten Stile, den ich vorstellen will, kommt:
MahApps.Metro
Homepage
1. Ihr öffnet Visual Studio und legt ein neues WPF Projekt an.
2. Ihr geht auf "Projekt" > "NuGet-Pakete verwalten..."
3. Ihr gebt oben Rechts bei Suchen "mahapps" ein.
4. Ihr installiert das Paket MahApps.Metro
5. Nach der erfolgreichen Installation öffnet ihr in eurem Projektmappen Explorer die "Application.xaml" und trag folgendes ein zwischen
Spoiler anzeigen
Bei euch müsste es dann so aussehen:
Spoiler anzeigen
Herzlichen Glückwunsch, alle Controls wurden dem MetroStyle angepasst.
Allerdings ist das Fenster immer noch "normal". Dass wollen wir nun ändern. Ihr geht auf eure Form in die XAML Ansicht und schreibt zwischen die anderen
Anschließend schreibt ihr ganz oben statt
Das gleiche muss dann auch noch am Ende des XAML Codes geändert werden. Der Code müsste jetzt ungefähr so aussehen:
Spoiler anzeigen
OK, wenn ihr nun ein paar Controls erstellt, sieht das ganze so aus:
Elysium
Homepage
Erstmal müsst ihr euch Elysium hierdownloaden und ggf. installieren.
Danach müssen wir einen Verweis hinzufügen. Wenn ihr das SDK installiert habt, ist der Ordner hier:
Ein Verweis auf die
(das kommt zwischen Application.Resources)
Insgesamt sollte es dann so aussehen:
Spoiler anzeigen
Wir sind eigentlich schon fertig, wir müssen nur noch Controls erstellen.
Modern UI for WPF
Homepage
Als erstes müsst ihr M:UI downloaden und auf die DLL Dateien
So müsste es dann insgesamt aussehen:
Spoiler anzeigen
Wenn ihr nun Controls auf eurer Form erstellt, sehen die sehr nach Metro aus :
Ich hoffe, ich konnte jemanden umstimmen, WinForms + MetroStlye weiterhin zu benutzten.
es kommt ziemlich häufig vor, dass ein Programm im Showroom WinForms + Metro Style benutzt. Ich denke, dass zeugt aus der Vorstellung, dass es in WPF (noch) schwieriger sei. Also will ich in diesem kleinen Tutorial vom Gegenteil überzeugen. Ihr schafft es mit wenigen Zeilen Code, alle Controls Metro-Stylisch aussehen zu lassen. Ich werde in diesem "Tutorial" zwei Vorgehensweisen nennen und 3 Metro Stiles vorstellen. Aber von vorne. Warum ist WPF für einen anderen Style besser geeignet als WinForms?:
- Ihr braucht keine neuen Controls.
- Ihr könnt ständig den Style wechseln oder rausnehmen
- Animationen sehen wesentlich besser aus
Okay, also werde ich jetzt Schritt für Schritt erklären, wie ihr an den ersten Stile, den ich vorstellen will, kommt:
MahApps.Metro
Homepage
1. Ihr öffnet Visual Studio und legt ein neues WPF Projekt an.
2. Ihr geht auf "Projekt" > "NuGet-Pakete verwalten..."
3. Ihr gebt oben Rechts bei Suchen "mahapps" ein.
4. Ihr installiert das Paket MahApps.Metro
5. Nach der erfolgreichen Installation öffnet ihr in eurem Projektmappen Explorer die "Application.xaml" und trag folgendes ein zwischen
<Application.Resources>
und </Application.Resources>
:XML-Quellcode
- <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>
Bei euch müsste es dann so aussehen:
XML-Quellcode
- <Application x:Class="Application"
- 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/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>
- </Application.Resources>
- </Application>
Herzlichen Glückwunsch, alle Controls wurden dem MetroStyle angepasst.
Allerdings ist das Fenster immer noch "normal". Dass wollen wir nun ändern. Ihr geht auf eure Form in die XAML Ansicht und schreibt zwischen die anderen
xmlns
folgendes: (Importiert folgenden Namespace)Anschließend schreibt ihr ganz oben statt
<Window...
folgendes: <Controls:MetroWindow
Das gleiche muss dann auch noch am Ende des XAML Codes geändert werden. Der Code müsste jetzt ungefähr so aussehen:
XML-Quellcode
- <Controls:MetroWindow x:Class="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">
- <Grid>
- </Grid>
- </Controls:MetroWindow >
OK, wenn ihr nun ein paar Controls erstellt, sieht das ganze so aus:
Elysium
Homepage
Erstmal müsst ihr euch Elysium hierdownloaden und ggf. installieren.
Danach müssen wir einen Verweis hinzufügen. Wenn ihr das SDK installiert habt, ist der Ordner hier:
C:\Program Files\Elysium SDK\.NET Framework 4.5\2.0
Ein Verweis auf die
Elysium.dll
reicht aus. Anschließend gehen wir wieder in unsere Application.xaml und geben dort folgendes ein:(das kommt zwischen Application.Resources)
Insgesamt sollte es dann so aussehen:
XML-Quellcode
- <Application x:Class="Application"
- 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="/Elysium;component/Themes/Generic.xaml"/>
- </ResourceDictionary.MergedDictionaries>
- </ResourceDictionary>
- </Application.Resources>
- </Application>
Wir sind eigentlich schon fertig, wir müssen nur noch Controls erstellen.
Modern UI for WPF
Homepage
Als erstes müsst ihr M:UI downloaden und auf die DLL Dateien
Microsoft.Windows.Shell.dll
und FirstFloor.ModernUI.dll
verweisen. Anschließend tragt ihr folgendes in eure Application.xaml ein: (zwischen Application.Resources)XML-Quellcode
So müsste es dann insgesamt aussehen:
XML-Quellcode
- <Application x:Class="Application"
- 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="/FirstFloor.ModernUI;component/Assets/ModernUI.xaml" />
- <ResourceDictionary Source="/FirstFloor.ModernUI;component/Assets/ModernUI.Light.xaml"/>
- </ResourceDictionary.MergedDictionaries>
- </ResourceDictionary>
- </Application.Resources>
- </Application>
Wenn ihr nun Controls auf eurer Form erstellt, sehen die sehr nach Metro aus :
Ich hoffe, ich konnte jemanden umstimmen, WinForms + MetroStlye weiterhin zu benutzten.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VincentTB“ ()