等待按钮单击

时间:2013-12-28 15:53:28

标签: c# .net asynchronous click async-await

我使用C#。 我想制作一个方法来做一些事情,然后等待用户点击四个按钮之一。我想要一些类似于MessageDialog异步方法的东西,等待用户在这种情况下单击“是”或“否”:

private  async void Button_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e)
{
    var x = new MessageDialog("Yes or no?", "Choose");

    x.Commands.Add(new UICommand("Yes", (UICommandInvokeHandler) =>
        {
            // blabla
        }));
    x.Commands.Add(new UICommand("No", (UICommandInvokeHandler) =>
        {
            // blabla
        }));

    await x.ShowAsync();
}

问题是我无法使用此方法(MessageDialog),因为我想要4个选项,但MessageDialog最多可以使用3个。

编辑:

private void Button_Click(object sender, Windows.UI.Xaml.RoutedEventArgs e)
{
    // doing some stuff
    Method();
    // doing some other stuff
}

private void Method()
{
    // makes everything in UI invisible
    // then makes the four buttons that were previously invisible, //visible
    // here I want the program to stop and wait the user to press one of //the four buttons
    // and then make the UI visible and the 4 buttons invisibl
}

1 个答案:

答案 0 :(得分:1)

Message Dialog表示WinRT框架中的对话框。它仅支持3个按钮,使其可用于较小的屏幕。您没有其他WinRT选项。 但是,您可以创建自己的“对话框”UI控件,但我不推荐它。 也许您可以将用户决策拆分为2个消息对话框。