c# - WPF 中的非模态窗口
问题描述
在我的 WPF 应用程序中,需要显示一个非模式窗口。我正在使用 MVVM Light 框架。人们建议使用不同的库来这样做,但是是否有任何合适的控件可以使用 MVVM Light 或使用 WPF 本机库来做到这一点?
需要将该非模态窗口始终保持在最前面。
谢谢。
解决方案
要创建非模态窗口,您不必使用框架。WPF 库有足够的可能性来创建它。
最快的解决方案是创建一个新的Xaml Window
并在 Xaml Window 代码的属性内指定TopMost
优先级,并将其设置为 true。
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="NonModalWindow" Height="300" Width="300" TopMost="True">
<Grid>
<!---- Some element defined in your window ---->
</Grid>
</Window>
创建此窗口后,只需调用它即可。
new NonModalWindow().Show();
如果你确实想把它变成一个Modal window
你可以使用下面的代码。
new NonModalWindow().ShowDialog(); // wooah a contradiction in the code