WPF应用程序中,我想实现以下似乎不能直接起作用的行为:

从主窗口(Window1),用户打开非模态窗口(Window2),并且该非模态窗口可以显示模态对话框(Window3).

问题是,只要显示模态对话框,当用户关闭对话框时,主窗口就会在后台消失(假设有其他应用程序的窗口打开).

我使用Window.Owner和Window.Show()/ Window.ShowDialog()的方式有什么不对,它是一个bug还是它不支持的东西?

以下简单的WPF应用程序演示了此行为:

public partial class Window1 : Window

{

public Window1()

{

InitializeComponent();

}

private void Button_Click(object sender,RoutedEventArgs e)

{

Window2 win = new Window2();

win.Owner = this;

win.Show();

}

}

public partial class Window2 : Window

{

public Window2()

{

InitializeComponent();

}

private void Button_Click(object sender,RoutedEventArgs e)

{

Window3 win = new Window3();

win.Owner = this;

win.ShowDialog();

}

private void btnClose_Click(object sender,RoutedEventArgs e)

{

this.Close();

}

}

public partial class Window3 : Window

{

public Window3()

{

InitializeComponent();

}

private void btnClose_Click(object sender,RoutedEventArgs e)

{

this.Close();

}

}

XAML Window1:

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

Title="Window1">

Show non-modal window

XAML Window2:

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

Title="Window2">

Show modal dialog

Close

XAML Window3:

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

Title="Window3">

Close

更新:修复了代码中的复制和粘贴错误.这是.NET 3.5 SP1,如果它很重要.

c#模态对话框从内部退出_c# – 如何在非模态对话框的顶部正确实现模态对话框?...相关推荐

  1. c#模态对话框从内部退出_C#模态对话框和非模态对话框

    模态对话框 弹出窗口阻止调用窗口的所有消息响应. 只有在弹出窗口结束后调用窗口才能继续. 在模态窗口"关闭"后,可以读取模态窗口中信息,包括窗口的返回状态,窗口子控件的值. 非模态 ...

  2. MFC 关于new出一个新对话框时,退出对话框内存泄漏的问题解决

    MFC 关于new出一个新对话框时,退出对话框内存泄漏的问题解决 参考文章: (1)MFC 关于new出一个新对话框时,退出对话框内存泄漏的问题解决 (2)https://www.cnblogs.co ...

  3. 秀米的对话框格子可以变大吗_漫画的对话框大小跟字数怎么才能在分镜的格子里正确配合?...

    对白文字: 对白文字的讲究也很多,但这和排版行业关系比较大,在过去没有电脑绘制时期,这项工作一般是由责任编辑或美工编辑来负责完成,不过CG制作的今天,这部分工作也需要漫画家自己来执行. 首先,对白文字 ...

  4. html弹窗赋值给查询框,bootstrap模态框动态赋值, ajax异步请求数据后给id为queryInfo的模态框赋值并弹出模态框(JS)...

    /查询单个 function query(id) { $.ajax({ url : "/small/productServlet", async : true, type : &q ...

  5. 线程自动退出_C++基础 多线程笔记(一)

    join & detach join和detach为最基本的用法,join可以使主线程(main函数)等待子线程(自定义的function_1函数)完成后再退出程序,而detach可以使子线程 ...

  6. java 对话框计算器,《Java程序设计》第16周礼拜四:GUI编程及文件对话框的使用 计算器...

    <Java程序设计>第16周周四:GUI编程及文件对话框的使用 计算器 项目三:实验六 图形用户界面(教材P279-280) 目标:完成实验六的内容. 运行代码 import java.a ...

  7. java确认对话框否_如何在Swing中显示是/否和取消选项的确认对话框?

    下面的示例展示如何在基于swing的应用程序中显示带有是,否和取消选项的确认对话框. 使用以下API - JOptionPane - 创建标准对话框. JOptionPane.showConfirmD ...

  8. java 非模态_统计图钻取的明细报表在非模态窗口中显示

    润乾报表的统计图可以在图例 / 图形上设置超链接,从而实现钻取到明细报表的操作,钻取得到的报表可以在新窗口或者当前窗口中打开.关于如何在统计图的图形 / 图例上设置超链接,在用户手册中有常用示例的介绍 ...

  9. 密码登录错误怎么退出c语言,使用C语言判断密码是否正确,三次失败就退出,超详细教程!!...

    #include #include #include #include int main() { int i; char password[]={0};                         ...

最新文章

  1. php elasticsearch ik,elasticsearch 中文分词(elasticsearch-analysis-ik)安装
  2. 显著提升图像识别网络效率,Facebook提出IdleBlock混合组成方法
  3. Android开发之如何保证Service不被杀掉(broadcast+system/app)
  4. jQuery图片自动轮转动画特效
  5. 每天写出好代码的5个建议
  6. 使用CreateThread函数创建线程
  7. Java的Servlet、Filter、Interceptor、Listener
  8. iOS中创建,使用动态库(dylib)
  9. 2440 linux文件写,添加yaffs2文件系统 - Linux2.6.39在S3C2440上的移植_Linux编程_Linux公社-Linux系统门户网站...
  10. VMware View 4.5: 轻松击败竞争对手
  11. Autolayout的简单介绍和示例代码
  12. 洛谷 P2920 [USACO08NOV]时间管理Time Management
  13. 使用js来实现模拟无刷新文件上传。
  14. 开发者的盛宴Google I/O 2016
  15. 配置管理——配置项标识
  16. php 实现顺序查找
  17. groupdel 删除用户组
  18. java方法的重写和重载_Java方法重载和重写原理区别解析
  19. 壳聚糖导管复合辛伐他汀/泊洛沙姆407水凝胶/负载转化生长因子β1温敏性壳聚糖水凝胶的制备
  20. Tiled map导入问题

热门文章

  1. Centos7镜像下载教程(2023年,4月)
  2. EasyUI中datagrid控件的使用 设置多行表头(两行或多行)
  3. 解决手机app视频无法播放问题
  4. spring注解 声明式事务
  5. L1-011 A-B(20 分)
  6. docker没有下载完全_看完此文,妈妈还会担心你docker入不了门?
  7. cocos creator 使用shader 不要勾选项目设置的动态图集和图片的自动合批
  8. ftp服务器需要ssl证书吗,FTP服务器SSL证书配置方法
  9. Linux之SSH远程执行命令
  10. 低倍数泡沫灭火系统设计规范