So I actually used this library a couple of years back but didn’t blog about it at the time. As I no longer have access to that application’s code I realized I needed a quick start tutorial for myself on how to get up and running with mui.
First steps
It’s simple enough to get the new styles etc. up and running, just follow these steps
- Create a WPF application
- Using NuGet install Modern UI
- Change the default Window to a ModernWindow (both in XAML and derive you code behind class from ModernWindow
- Add the following to your App.xaml resources
<ResourceDictionary> <!-- WPF 4.0 workaround --> <Style TargetType="{x:Type Rectangle}" /> <!-- end of workaround --> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="/FirstFloor.ModernUI;component/Assets/ModernUI.xaml" /> <ResourceDictionary Source="/FirstFloor.ModernUI;component/Assets/ModernUI.Light.xaml"/> </ResourceDictionary.MergedDictionaries> </ResourceDictionary>
So that was easy enough, by default a grayed out back button is shown, we can hide that by setting the window style to
Style="{StaticResource BlankWindow}"
You can show/hide the window title by using the property
IsTitleVisible="False"
to the ModernWindow.
The tab style navigation
In these new UI paradigms we may use the equivalent of a tab control to display the different views in the main window, we achieve this in mui using
<mui:ModernWindow.MenuLinkGroups> <mui:LinkGroup DisplayName="Pages"> <mui:LinkGroup.Links> <mui:Link DisplayName="Page1" Source="/Views/Page1.xaml" /> <mui:Link DisplayName="Page2" Source="/Views/Page2.xaml" /> </mui:LinkGroup.Links> </mui:LinkGroup> </mui:ModernWindow.MenuLinkGroups>
This code should be placed within the ModernWindow element (not within a Grid element) and in this example I created a Views folder with two UserControls, Page1 & Page2 (in my case I placed a TextBlock in each with Page1 and Page 2 Text respectively to differentiate the two).
Running this code we now have a UI with the tab like menu and two pages, the back button also now enables (if you are using it) and allows navigation back to the previous selected tab(s).
One thing you might notice, when the app starts no “page”, by default, is selected. There’s a ContentSource property on a ModernWindow and we can set this to the page we want dispalyed, but if you do this you’ll also need to updated the LinkGroup to tell it what the current pages is.
The easiest way to do this is using code behind, in the MainWindow ctor, simply type
ContentSource = MenuLinkGroups.First().Links.First().Source;
Colour accents
By default the colour accents used in mui are the subtle blue style (we’ve probably seen elsewhere), to change the accent colours we can add the following
AppearanceManager.Current.AccentColor = Colors.Red;
to the MainWindow ctor.
Okay that’s a simple starter guide, more (probably) to follow.
References
https://github.com/firstfloorsoftware/mui/wiki