![]() |
VOOZH | about |
dotnet add package NuExt.Minimal.Mvvm.MahApps.Metro --version 0.7.3-pre
NuGet\Install-Package NuExt.Minimal.Mvvm.MahApps.Metro -Version 0.7.3-pre
<PackageReference Include="NuExt.Minimal.Mvvm.MahApps.Metro" Version="0.7.3-pre" />
<PackageVersion Include="NuExt.Minimal.Mvvm.MahApps.Metro" Version="0.7.3-pre" />Directory.Packages.props
<PackageReference Include="NuExt.Minimal.Mvvm.MahApps.Metro" />Project file
paket add NuExt.Minimal.Mvvm.MahApps.Metro --version 0.7.3-pre
#r "nuget: NuExt.Minimal.Mvvm.MahApps.Metro, 0.7.3-pre"
#:package NuExt.Minimal.Mvvm.MahApps.Metro@0.7.3-pre
#addin nuget:?package=NuExt.Minimal.Mvvm.MahApps.Metro&version=0.7.3-pre&prereleaseInstall as a Cake Addin
#tool nuget:?package=NuExt.Minimal.Mvvm.MahApps.Metro&version=0.7.3-pre&prereleaseInstall as a Cake Tool
NuExt.Minimal.Mvvm.MahApps.Metro is a NuGet package that provides extensions for integrating MahApps.Metro, a popular Metro-style UI toolkit for WPF applications, with NuExt.Minimal.Mvvm.Wpf, a WPF extension for the lightweight MVVM framework NuExt.Minimal.Mvvm. This package includes services and components to facilitate the creation of modern, responsive, and visually appealing user interfaces using the MVVM pattern.
👁 NuGet
👁 Build
👁 License
👁 Downloads
IAsyncDialogService that shows Metro dialogs and returns UICommand / MessageBoxResult without UI thread blocking.Requires MahApps.Metro (add resource dictionaries to
App.xamland useMetroWindow).
Add MahApps resource dictionaries to App.xaml and use MetroWindow as the base for your main window (per MahApps docs). 2
<Application ...>
<Application.Resources>
<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/Themes/Light.Blue.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
<mah:MetroWindow
x:Class="MyApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls"
Title="MyApp" Width="900" Height="600"
WindowStartupLocation="CenterScreen">
</mah:MetroWindow>
<nx:Interaction.Behaviors xmlns:nx="http://schemas.nuext.minimal/xaml">
<nx:DialogCoordinatorService x:Name="DialogCoordinatorService"/>
<nx:MetroDialogService x:Name="Dialogs"
DialogCoordinator="{Binding Source={x:Reference DialogCoordinatorService}}" />
</nx:Interaction.Behaviors>
// ViewModel (NuExt.Minimal.Mvvm.Wpf base)
private IAsyncDialogService Dialogs => GetService<IAsyncDialogService>("Dialogs");
public async Task AskAsync(CancellationToken ct)
{
await using var viewModel = new ConfirmViewModel();
var result = await Dialogs.ShowDialogAsync(
MessageBoxButton.OKCancel,
title: "Confirm",
documentType: "MyDialogView",
viewModel: viewModel,
parentViewModel: this,
parameter: null,
cancellationToken: ct);
if (result != MessageBoxResult.OK) return;
// proceed...
}
<mah:MetroTabControl>
<nx:Interaction.Behaviors xmlns:nx="http://schemas.nuext.minimal/xaml">
<nx:MetroTabbedDocumentService x:Name="Tabs" CloseButtonEnabled="True"
ActiveDocument="{Binding ActiveDocument}"
FallbackViewType="{x:Type views:ErrorView}">
</nx:MetroTabbedDocumentService>
</nx:Interaction.Behaviors>
</mah:MetroTabControl>
public IAsyncDocumentManagerService Tabs => GetService<IAsyncDocumentManagerService>("Tabs");
public async Task OpenCustomerAsync(CustomerModel model, CancellationToken ct)
{
var vm = new CustomerViewModel(model);
var doc = await Tabs.CreateDocumentAsync("CustomerView", vm, parentViewModel: this, parameter: null, ct);
doc.DisposeOnClose = true;
doc.Show();
}
See the repo samples/MetroWpfApp for a runnable example.
Minimal.Mvvm.Wpf.DialogCoordinatorService: coordinates dialogs in MVVM scenarios.Minimal.Mvvm.Wpf.MetroDialogService: IAsyncDialogService backed by MahApps dialogs.Minimal.Mvvm.Wpf.MetroTabbedDocumentService: document manager for tabs (MetroTabControl).MahApps.Metro.Controls.Dialogs.MetroDialog: The class used for custom dialogs.Via NuGet:
dotnet add package NuExt.Minimal.Mvvm.MahApps.Metro
Or via Visual Studio:
Tools -> NuGet Package Manager -> Manage NuGet Packages for Solution....NuExt.Minimal.Mvvm.MahApps.Metro.Nice to have: NuExt.Minimal.Mvvm.SourceGenerator to remove boilerplate in view‑models.
Issues and PRs are welcome. Keep changes minimal and performance-conscious.
MIT. See LICENSE.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0-windows7.0 net8.0-windows7.0 is compatible. net9.0-windows net9.0-windows was computed. net9.0-windows7.0 net9.0-windows7.0 is compatible. net10.0-windows net10.0-windows was computed. net10.0-windows7.0 net10.0-windows7.0 is compatible. |
| .NET Framework | net462 net462 is compatible. net463 net463 was computed. net47 net47 was computed. net471 net471 is compatible. net472 net472 was computed. net48 net48 was computed. net481 net481 was computed. |
This package is not used by any NuGet packages.
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.7.3-pre | 75 | 3/16/2026 |
| 0.7.0-pre | 73 | 2/13/2026 |
| 0.6.0-pre | 81 | 1/11/2026 |
| 0.5.2-pre | 252 | 12/15/2025 |
| 0.5.1-pre | 208 | 12/14/2025 |
| 0.4.1-pre | 393 | 12/10/2025 |
| 0.4.0-pre | 146 | 12/6/2025 |
| 0.3.4-pre | 141 | 2/21/2025 |
| 0.3.3-pre | 123 | 1/26/2025 |
| 0.3.2-pre | 133 | 1/22/2025 |
| 0.3.1-pre | 126 | 1/19/2025 |
| 0.3.0-pre | 121 | 1/13/2025 |