C#/ WPF,如何创建一个窗口(用Window.ShowDialog()创建)标题栏在单击其父窗口时闪烁(就像MessageBox一样)?

时间:2010-10-26 19:35:28

标签: c# wpf messagebox showdialog

我正在尝试使用ShowDialog()调用的WPF窗口创建自定义MessageBox。

到目前为止,除了一件事之外,我已经成功实现了一切。

如您所知,当您使用MessageBox.Show("text");时,无法设置焦点或单击父窗口(调用MessageBox的窗口)。如果您确实尝试单击父窗口,MessageBox将短暂闪烁,以提醒您必须先关闭。

使用Window.ShowDialog();创建的Windows不会显示该行为。实际上,虽然您无法将焦点设置为父窗口,但子节点(使用ShowDialog()调用)将永远不会短暂闪烁。

我的问题是,有没有办法在WPF中实现它?我一直在寻找答案,但我必须承认,我很难过。

谢谢大家!

2 个答案:

答案 0 :(得分:11)

您需要正确设置模态窗口的Owner,例如在拥有窗口中使用以下代码:

Window win = new SomeModalWindow();
win.Owner = this;
win.ShowDialog();

答案 1 :(得分:3)

您必须将子Owner的{​​{1}}属性设置为父Window。请参阅MSDN文档here

相关问题