什么做网站站群,潜江资讯网58同城,沈阳seo关键词排名,湖南网站建设推广优化几个重要的概念需要清楚#xff1a;Show和ShowDialog区别1、调用Show方法后弹出子窗口后#xff0c;线程会继续往下执行。调用ShowDialog方法弹出子窗口后#xff0c;线程会阻塞#xff0c;直到子窗口关闭才继续往下执行。2、ShowDialog弹出的子窗口会使父窗口不能获得焦点…几个重要的概念需要清楚Show和ShowDialog区别1、调用Show方法后弹出子窗口后线程会继续往下执行。调用ShowDialog方法弹出子窗口后线程会阻塞直到子窗口关闭才继续往下执行。2、ShowDialog弹出的子窗口会使父窗口不能获得焦点必须先关闭子窗口才能关闭父窗口。Show则不会。3、在ShowDialog弹出的子窗口中设置DialogResult会关闭子窗口父窗口可根据DialogResult的值做不同响应。Owner当设置了Owner不管是点击任务栏切换还是TAB切换子窗口都将永远保持在父窗口上层(最符合使用习惯)。如果不设置子窗口的Owner就可能发生子窗口被父窗口遮挡并且父窗口无法点击的严重BUG所以弹出窗口时应该要首先设置子窗口的Owner属性。PS不能将所有的窗口Owner都设置为App.Current.MainWindow,因为如果是第三级弹出子窗口那么点击第二级子窗口时第三级子窗口也会被遮挡。Topmost当Topmosttrue时窗口会置于桌面的最顶层本软件的所有的窗口或其它软件的窗口都会被该窗口遮挡(这显然是不合理的)。所以如果不是特殊需要千万不要把Topmost设置为true。ShowInTaskbar默认为true当设置为false的时候在任务栏看不到该窗口。总结因为WPF默认只有一个不带参的ShowDialog方法为了防止弹出子窗口时忘记设置Owner属性我们可以添加一个带参数的扩展方法。扩展方法public static classDialogHelper{public static bool? ShowDialog(thisWindow win, Window owner){win.Owner owner;win.ShowInTaskbar false;returnwin.ShowDialog();}}调用var win newWinA();win.ShowDialog(this);