我怎样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 <(Of <(T>)>)布尔值,指定活动是被接受还是取消.返回值是窗口关闭之前DialogResult属性的值(请参阅DialogResult).
基本上,您可以通过设置DialogResult的值来决定,而不是通过按特定按钮 - 您可以决定按钮的功能.
在WPF中,将Button.IsDefault属性设置为true以指定按钮是窗口的"提交"按钮.我不是百分百肯定这会使窗口关闭,而DialogResult为true.如果没有,你只需要处理它的Click事件:
this.DialogResult = true;
编辑
同样,您可以使用Button.IsCancel属性将按钮作为表单的"取消"按钮.
编辑2
我相信ShowDialog可以为空的原因是,因为它在表单提交或取消之前是空的,所以如果你在后台线程中观看对话框,你可以测试它.我没有尝试过,但这似乎是他们为该属性引入第三个"未知"(null)状态的合理原因.
如果将DialogResult设置为true,则ShowDialog返回true,如果将DialogResult设置为false,如果关闭对话框而不设置DialogResult(用户单击右上角的红色X),ShowDialog将返回false,ShowDialog将返回null.
将IsDefault设置为true将导致按钮看起来略有不同,按Enter键将"单击"此按钮.
如果将IsCancel设置为true,则按下esc将"单击"此按钮.