我如何才能System.Windows.ShowDialog()
返回“真”?
我对此有点陌生。 System.Windows.ShowDialog
的返回类型是bool
? 它应该true
在您击中时返回Submit
,并且false
在您击中时返回Cancel
。但我不确定如何指定哪个Button
是官方提交按钮。
编辑:在相关说明中,我很好奇它如何返回 null。
http://msdn.microsoft.com/en-us/library/system.windows.window.showdialog.aspx
ShowDialog 返回一个
Nullable<Boolean>
值,该值指定活动是被接受还是被取消。返回值是窗口关闭之前 DialogResult 属性的值(请参阅 DialogResult)。
基本上,您通过设置 DialogResult 的值来决定,而不是通过点击特定按钮来决定 - 您决定按钮的作用。
在 WPF 中,将Button.IsDefault属性设置为 true 以指定按钮是窗口的“提交”按钮。我不是 100% 确定这会使窗口关闭,DialogResult 为 true。如果没有,您只需要这样处理它的 Click 事件:
this.DialogResult = true;
编辑
同样,您可以使用Button.IsCancel属性使按钮成为表单的“取消”按钮。
编辑 2
我相信 ShowDialog 可以为空的原因是因为在提交或取消表单之前它是空的,如果你在后台线程中观看对话框,你可以测试它。我没有尝试过,但这似乎是他们将第三个“未知”(null)状态引入该属性的合乎逻辑的原因。
如果将 DialogResult 设置为 true ShowDialog 返回 true,如果将 DialogResult 设置为 false ShowDialog 返回 false 如果在未设置 DialogResult 的情况下关闭对话框(用户单击右上角的红色 X) ShowDialog 将返回 null。
将 IsDefault 设置为 true 将导致按钮看起来有点不同,按 enter 将“单击”此按钮。
如果将 IsCancel 设置为 true,则按下 esc 将“单击”此按钮。