我在这里使用 Codeplex 上提供的 ModernUI for WPF (MUI) 。这是一个很好的框架,我没有问题将它用作我的页面的容器。
我现在正在尝试添加一个自定义模式对话框,但声明为一个简单的 Window 并不能保持 MUI 的良好风格。我一直在尝试理解源代码,但我不知道如何像它那样创建一个窗口。
有人可以给我一些关于如何使用这个框架实现自定义模式对话框的指导吗?
编辑:这是我在 XAMlMAX 的帮助下找到的解决方案:
<mui:ModernWindow
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:lex="http://wpflocalizeextension.codeplex.com"
xmlns:SysClient="clr-namespace:SysClient"
xmlns:System="clr-namespace:System;assembly=mscorlib"
x:Class="SysClient.Pages.GenericWindow"
xmlns:mui="http://firstfloorsoftware.com/ModernUI"
mc:Ignorable="d" Width="800" Height="520" Activated="Window_Activated" Margin="0,0,0,0">
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/FirstFloor.ModernUI;component/Themes/ModernWindowPopUp.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Window.Resources>
<Window.Style>
<StaticResource ResourceKey="ModernWindowPopUp"></StaticResource>
</Window.Style>
这就是我使用它的方式:
GenericWindow w = new GenericWindow()
{
Title = "Add Order",
ShowInTaskbar = false, // don't show the dialog on the taskbar
//Topmost = true, // ensure we're Always On Top
ResizeMode = ResizeMode.NoResize, // remove excess caption bar buttons
Owner = Application.Current.MainWindow,
Tag = new ParametersClass(OrderTypeId),
ContentSource = new Uri("/Windows/AddOrderWindow.xaml", UriKind.Relative)
};
w.ShowDialog();