我有一个带七个按钮的窗口;我将它用作我正在处理的简单游戏中的菜单,但我将其显示为对话框。我怎么知道用户按下了哪个按钮,因为WPF中的DialogResult只提供true,false和null?
答案 0 :(得分:2)
如果您以这种方式制作自定义窗口,则无需担心DialogResult。
您可以在Window中的属性中跟踪此内容,并在关闭对话框后阅读该属性。
MyDialog window = new MyDialog();
if (window.ShowDialog() == false)
{
// user closed the window...
}
var choice = window.CustomPropertyContainingChoice;
答案 1 :(得分:0)
定义你自己的枚举并提供一个静态方法来显示返回你的枚举的窗口。
以下代码与窗口的一部分相同,它允许用户查看其更改并接受或取消。因为我只需要真假,所以我使用了一个bool但是改为枚举会很简单。
public static bool DisplayChanges(List<INormalizedMessage> LstMessages)
{
var retlist = LstMessages.Where(( INormalizedMessage NM ) => { return NM.Status != NormalizedMessageStatus.NoChange; });
ReviewChanges RC = new ReviewChanges();
RC.Messages = retlist.ToList();
RC.ShowDialog();
return RC.Result;
}
private void cmdCancle_Click( object sender, RoutedEventArgs e )
{
Result = false;
Hide();
}
private void cmdOK_Click( object sender, RoutedEventArgs e )
{
Result = true;
Hide();
}