【问题标题】:How to run a C# winform in an XNA C# project如何在 XNA C# 项目中运行 C# winform
【发布时间】:2011-08-23 19:27:05
【问题描述】:

我正在尝试在 XNA 游戏中使用 PDFsharp 库。我试图开始工作的示例代码是:

 static void Main() 
    {
      Renderer renderer = new Renderer();
      PreviewForm form = new PreviewForm();
      form.RenderEvent = new PagePreview.RenderEvent(renderer.Render);
      Application.Run(form);
    }

但我不知道如何让它在 XNA 中运行。

是否可以将传递给 winform 的图形改为 XNA 图形引擎?

【问题讨论】:

标签: c# xna pdfsharp


【解决方案1】:

更新 2

看来MSDN的原始链接已被破坏,我似乎无法在MSDN上找到它们,如果有人找到,请更新帖子。同时,您可能想查看这篇 codeproject 文章 -- http://www.codeproject.com/Articles/21330/Easy-Rendering-with-XNA-Inside-a-Windows-Form

更新快速检查后,看起来第一个链接(另见:XNA and WinForms)与我找到的相同。

我建议你考虑混合 winforms 和 XNA,试试这个:http://create.msdn.com/en-US/education/catalog/sample/winforms_series_1

【讨论】:

  • @user1306322 我已经用另一个链接更新了我的帖子,并请求找到损坏链接的新位置的任何人更新帖子。
【解决方案2】:

您需要做的第一件事是创建登录表单。 在此表单中创建您需要的字段作为公共属性

public string userName {get;set;} 
public string password {get;set;}

在登录表单中,您需要将用户信息写入这些属性:

private void btnOk_Click(object sender,EventArgs e)
{
    this.userName = txtName.Text;
    this.password = txtPass.Text;
    this.Close();
}

然后,在游戏中(在你需要的部分)写下这样的内容:

using (var form = new frmLogin())
{
    var result = form.ShowDialog();
    if (result == DialogResult.OK)
    {
        string user = form.userName;
        string pass = form.password;
    }
}

但作为一个仅供参考 - winforms 在 XNA 中看起来不太好 希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-31
    • 1970-01-01
    • 1970-01-01
    • 2012-11-12
    • 1970-01-01
    相关资源
    最近更新 更多