原文:
WPF Prism MVVM 中 弹出新窗体. 放入用户控件
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_37214567/article/details/79657338
WPF Prism MVVM 中 弹出新窗体. 放入用户控件., 传入一些数据,并且可以返回一些数据.
对于一个WPF MVVM 的 萌新来说. 必然会遇到一个 弹出 新窗口 的问题.
今天,就和大家分享一下,这个问题的解决方法.
.
一. 准备
- .dll
- .CS 文件 (StylePopupWindowAction.cs)
- .xaml 文件(BorderlessWindow.xaml)
这里是 实例化一个窗口,然后 加载窗口的样式. ( StylePopupWindowAction.cs)
using System;
using System.Windows;
using System.Windows.Input;
using Prism.Interactivity;
using Prism.Interactivity.InteractionRequest;
namespace HXDJSsYSTEM.WindowAction
{
public class StylePopupWindowAction : PopupWindowAction
{
private Window _wrapperWindow;
/// <summary>
/// 通过重写PopupWindowAction中的GetWindow方法,设置Window的Style属性。
/// 否则打开的只能是默认窗体,无法设置样式。
/// </summary>
/// <param name="notification"></param>
/// <returns></returns>
protected override Window GetWindow(INotification notification)
{
if (this.WindowContent != null)
{
//初始化窗口
_wrapperWindow = new Window
{
//数据上下文
DataContext = notification,
Title = notification.Title,
//宽高自适应 内容
SizeToContent = SizeToContent.WidthAndHeight,
};
_wrapperWindow.KeyDown += WrapperWindow_KeyDown;
ResourceDictionary langRd = null;
try
{
//读取资源文件(样式)
langRd = Application.LoadComponent(new Uri("/WindowAction/BorderlessWindow.xaml", UriKind.RelativeOrAbsolute)) as ResourceDictionary;
}
catch
{
}
//判断资源是否 读取成功.读取成功则不为null
if (langRd != null