我尝试在xna中创建一个自定义弹出式窗口,其中会显示一些文字并添加选择yes
或no
的选项。根据所选按钮,应返回一个值。我已经设置了很多东西,但是我无法弄清楚如何做这个特定的部分。
首先,我有一个PopupDialogHandler
类,其中包含所有Popup_Dialog
的列表,并管理各自的click
事件,并管理更新和绘图。
类Popup_Dialog
是管理创建新popup
对象的类。
一切都已完成,我绘制了矩形,绘制了文本,按钮正在处理中,但我不知道应该采用什么方式进行简单而有效的结果管理。
像winforms'返回MessageBox.Show
。
目前,我创建了Popup_Dialog
对象并将其添加到PopupDialogHandler
类的列表中,从那里我遍历列表中的所有项目并进行绘制和更新逻辑
答案 0 :(得分:0)
您可以使用操作执行此操作。在PopupDialog类中,将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()
。
在接收/等待课程中,添加以下代码:
private void CallbackFunction(int theReturnedValue)
{
// do something with the value here
}
并在创建新弹出窗口时传递这样的函数:
var RC = new PopupDialog(CallbackFunction);