- Install MahApps from NuGet
- Manage NuGet Packages ...
- Search for "mahapps" and include prerelease
- Install MahApps.Metro and MahApps.Metro.Resources.
- Style the window
- Add to the App.xaml
- Changes to the window
- XAML
Change Window tag to Controls:MetroWindow and add the Controls namespace to the Controls:MetroWindow tag.
Result - Code behind
Change the inheritance from Window to MetroWindow
Result - Result
- Add a border to the MetroWindow
- Change window theme
// All default themes List<accent> accents = ThemeManager.DefaultAccents.ToList(); // Custom theme ThemeManager.ChangeTheme(App.Current, accents[2], Theme.Light);
Result
- Add resize grip to the window
In xaml add to the root element ResizeMode="CanResizeWithGrip"
Example
Result
<ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" /> <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" /> <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml" /> <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Blue.xaml" /> <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" /> <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.AnimatedSingleRowTabControl.xaml" /> </ResourceDictionary.MergedDictionaries> </ResourceDictionary>
Result
Get the current theme and apply the "WindowTitleColorBrush" to the BorderBrush of the window
Result
// Window theme Tuple<Theme, Accent> windowTheme = ThemeManager.DetectTheme(this); //Application theme Tuple<Theme, Accent> applicationTheme = ThemeManager.DetectTheme(App.Current); // If windowTheme is null, the applicationTheme is active Tuple<Theme, Accent> activeTheme = windowTheme ?? applicationTheme; foreach (DictionaryEntry accent in applicationTheme.Item2.Resources) { // Set window border to same color of window title if (accent.Key.ToString() == "WindowTitleColorBrush") { BorderBrush = (Brush)accent.Value; BorderThickness = new Thickness(1); } }
Result
No comments:
Post a Comment