WPF Prism MVVM 中 弹出新窗体. 放入用户控件

本文介绍了在WPF Prism MVVM框架下如何弹出新窗口并放入用户控件,包括准备工作的dll、CS和XAML文件,以及在ViewModel中的实现方法,强调了防止触发器死循环的重要性,提供了一种解决此类问题的实践方案。
摘要由CSDN通过智能技术生成
原文: 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值