WPF 之 设置Dialog的父窗体

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

ClassRootWindow
{
       void Foo()
       {
               ChildWindow cw = newChildWindow();
               cw.Owner = this;
               cw.Show();
       }
}

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

2、如果弹出窗体(ChildWindow)以ShowDialog的方式显示,并且没有设置了其Owner属性:

ClassRootWindow
{
    voidFoo()
    {
          ChildWindow cw = new ChildWindow();
          cw.ShowDialog();
    }
}

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

3、如果弹出窗体(ChildWindow)以ShowDialog的方式显示,并且设置了其Owner属性:

Class RootWindow
{
    void Foo()
    {
         ChildWindow cw = newChildWindow();
         cw.Owner = this;
         cw.ShowDialog();
    }
}

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值