如何在自定义弹出对话框中保存响应

How to save the response in a custom made popup dialog

我正在尝试在 xna 中创建一个显示一些文本并将选项添加到 select yesno 的自定义弹出窗口。根据按钮 selected,应该返回一个值。我几乎已设置好所有内容,但我不知道如何执行此特定部分。

首先,我有一个 PopupDialogHandler class,它包含所有 Popup_Dialog 的列表并管理它们各自的 click 事件,还管理更新和绘图.

class Popup_Dialog 是管理创建新 popup 对象的 class。

一切都完成了,我画了矩形,画了文本,正在处理按钮,但我不知道我应该使用什么方法来进行简单而有效的结果管理。

类似于 winforms 的 MessageBox.Show returns。 目前,我创建 Popup_Dialog 对象并将其添加到 PopupDialogHandler class 中的列表,从那里我遍历列表中的所有项目并执行绘图和更新逻辑

您可以使用操作来做到这一点。在 PopupDialog class 中,将 private Action<int> Callback; 添加到属性并将此代码添加到构造函数:

public PopupDialog(Action<int> callback /*, rest of constructor parameters if any */)
{
    /* Rest of constructor code, if any */

    if (callback == null)
        throw new ArgumentNullException();
    Callback = callback;
}

在 Click 处理程序中,只需调用 Callback() 并将您想要 return 的值作为参数。

在receiving/waitingclass中,添加这段代码:

private void CallbackFunction(int theReturnedValue)
{
    // do something with the value here
}

并在创建新弹出窗口时像这样传递函数:

var RC = new PopupDialog(CallbackFunction);