关于子窗体的层级关系总结一下哈,希望能对大家有些帮助
假设有这样两个窗体:RootWindow,SubWindow,在RootWindow中引发某事件而显示SubWindow

1,如果弹出窗体(比如SubWindow)仅仅是调用Show方法,并且没有设置其Owner属性:

ClassRootWindow
{
        void Foo()
        {
                   SubWindow sw = newSubWindow();
                   sw.Show();
        }
}
那么弹出窗体(SubWindow)和源窗体(如RootWindow)没有任何层级关系,也就是说不会以模态方式呈现(SubWindow不会阻挡用户
对RootWindow的操作)。SubWindow在Show出来时在RootWindow的上方,但用户可以通过鼠标点击等方式将
RootWindow带到SubWindow前方来而遮盖RootWindow的内容,也就是说,享有用户焦点的窗口将被带到最前方。并且
RootWindow和SubWindow的最小化与还原操作互不影响。

2,如果弹出窗体(比如SubWindow)调用Show方法,并且设置了其Owner属性:

ClassRootWindow
{
        void Foo()
        {
                   SubWindow sw = newSubWindow();
                  sw.Owner = this;
                   sw.Show();
        }
}

那么弹出窗体(SubWindow)和源窗体(如RootWindow)将有着父子关系,也就是说,弹出窗体将永远在源窗体的上方,但并不是模式的,用户可以操作源窗体,当源窗体被最小化或还原的时候,弹出窗体也将随着最小化和还原,反之不成立。

3,如果弹出窗体(SubWindow)以ShowDialog的方式显示,并且没有设置其Owner属性:
ClassRootWindow
{
voidFoo()
{
          SubWindow sw = new SubWindow();
          sw.ShowDialog();
}
}
弹出窗体将以模式的方式出现,但没有父子关系,弹出窗体将阻止用户对源窗体的操作,但点击源窗体时弹出窗体不会出现闪动效果。弹出窗体最小化时,源窗体会
随之最小化,但还原操作却不可以(很奇怪)。这里有一个值得注意的问题是:在此模式下,如果弹出窗体不在任务栏显示
(ShowInTaskBar==false),而源窗体显示在任务栏,用户的操作可能会导致弹出窗口被隐藏在源窗口背后而没办法切换出来(除非使用
Alt+TAB)。

4,如果弹出窗体(SubWindow)以ShowDialog的方式显示,并且设置了其Owner属性:
Class RootWindow
{
                 void Foo()
                 {
                         SubWindow sw = newSubWindow();
                           sw.Owner = this;
                           sw.ShowDialog();

}

弹出窗体将以模式的方式出现,并且有父子关系,弹出窗体将永远处于源窗体上方,弹出窗体将阻止用户对源窗体的操作,并且点击源窗体时弹出窗体会出现闪动效果。弹出窗体最小化或还原时,源窗体会随之最小化或还原

原著博文地址 :http://www.cnblogs.com/zhouyinhui/archive/2008/12/02/1345580.html

WPF:父窗口与子窗口的层次关系的更多相关文章

  1. HTML中IFrame父窗口与子窗口相互操作

    一.Iframe篇 //&&&&&&&&&&&&&&&&&&am ...

  2. JavaScript(Iframe、window.open、window.showModalDialog)父窗口与子窗口之间的操作

    一.Iframe 篇 公共部分 //父对象得到子窗口的值 //ObjectID是窗口标识,ContentID是元素ID function GetValue(ObjectID,ContentID) { ...

  3. js window.open() 父窗口与子窗口的互相调用(未必有用)

    javascript 父窗口与子窗口的互相调用 <html> <head></head> <body> 主要实现父子关系的页面 window.opene ...

  4. 总结JavaScript(Iframe、window.open、window.showModalDialog)父窗口与子窗口之间的操作

    一.Iframe 篇 //&&&&&&&&&&&&&&&&&&a ...

  5. windows窗口分析,父窗口,子窗口,所有者窗口

    (本文尝试通过一些简单的实验,来分析Windows的窗口机制,并对微软的设计理由进行一定的猜测,需要读者具备C++.Windows编程及MFC经验,还得有一定动手能力.文中可能出现一些术语不统一的现象 ...

  6. #js window.open() 父窗口与子窗口的互相调用【转】

    未完整版 javascript 父窗口与子窗口的互相调用 a.html 父页面 <HTML> <HEAD> <meta http-equiv="content- ...

  7. iframe父窗口和子窗口之间的调用

    1>父窗口获取子窗口 js方法 document.getElementById('if1').contentWindow.document: window.frames["if1&qu ...

  8. 总结js(Iframe、window.open、window.showModalDialog)父窗口与子窗口之间的操作

    http://hi.baidu.com/yashua839/blog/item/131fdb2fe547ef221f3089af.html一.Iframe 篇 //&&&&am ...

  9. iframe父窗口和子窗口的调用方法

    iframe 父窗口和子窗口的调用方法父窗口调用子窗口 iframe_name.iframe_document_object.object_attribute = attribute_value 例子 ...

  10. windows 编程 —— 子窗口 与 子窗口控件

    目录: 子窗口与主窗口的交互 子窗口控件 按钮类别 button 滚动条类别 scrollbar 静态类别  static 编辑框类别 edit 清单方块 listbox 子窗口与主窗口的交互 创建窗 ...

随机推荐

  1. snr ber Eb/N0之间的区别与联系

    信噪比(S/N)是指传输信号的平均功率与加性噪声的平均功率之比,载噪比(C/N)指已经调制的信号的平均功率与加性噪声的平均功率之比,它们都以对数的方式来计算,单位为dB. 对同一个传输系统而言,载噪比 ...

  2. poj 1698 Alice‘s Chance

    poj 1698  Alice's Chance 题目地址: http://poj.org/problem?id=1698 题意: 演员Alice ,面对n场电影,每场电影拍摄持续w周,每周特定几天拍 ...

  3. linux基础-第十二单元 硬盘分区、格式化及文件系统的管理一

    第十二单元 硬盘分区.格式化及文件系统的管理一 硬件设备与文件名的对应关系 硬盘的结构及硬盘分区 为什么进行硬盘分区 硬盘的逻辑结构 Linux系统中硬盘的分区 硬盘分区的分类 分区数量的约束 使用f ...

  4. Sharepoint 杂记

    在Sharepoint中复制Settle.html,粘贴后改名为km.html,修改km.html会自动更新km.master,修改好模板后需要在站点发布. 添加List添加WebPart,继承KmW ...

  5. js原型继承的几种方式

    1. 原型链继承 2,构造函数继承(对象冒充继承) 3,组合继承(原型链继承+构造函数继承) 4,原型式继承 5. 寄生组合式继承 一.原型链继承 function Show(){ this.name ...

  6. 对Ip地址进行验证

    依据正则表达式 boolean voliate(String ipString) {        // 匹配ip正则表达式        String ip = "([1-9]|[1-9] ...

  7. Java 构建器

    假如我们的一个实体类有很多的属性值,但是这些属性值又是可选的.如果我们遇到这样的是类,如何设计出方便的实体类呢? 通常解决办法一: 重叠构造器 public class User { private ...

  8. [转]实体类(VO,DO,DTO)的划分

    原文地址:http://blog.sina.com.cn/s/blog_7a4cdec80100wkyh.html 经常会接触到VO,DO,DTO的概念,本文从领域建模中的实体划分和项目中的实际应用情 ...

  9. JS模块化编程之加载器原理

    世面上有好多JavaScript的加载器,比如 sea.js, require.js, yui loader, labJs...., 加载器的使用范围是一些比较大的项目, 个人感觉如果是小项目的话可以 ...

  10. 100726C

    显而易见,我们要找子串,每次记录前缀和,算出余数,然后通过一个数组保存余数,答案就是加上之前余数的总和,要注意整除的情况 #include<iostream> #include<cs ...