C# 如何控制XNA在启动时将游戏窗口放置在何处?

C# 如何控制XNA在启动时将游戏窗口放置在何处?,c#,xna,C#,Xna,我有以下烦恼:每当我开始调试XNA游戏时,屏幕中央就会弹出游戏窗口。由于我有一个双监视器系统,我想在第二个监视器的某个位置设置默认启动位置。但是,这应该只在调试模式中发生 您需要添加对System.Windows.Forms和System.Drawing(Steve H指出)的引用,然后在构造函数之外的某个地方执行以下操作,如在初始化覆盖中 var form = (System.Windows.Forms.Form)System.Windows.Forms.Control.FromHandle(

我有以下烦恼:每当我开始调试XNA游戏时,屏幕中央就会弹出游戏窗口。由于我有一个双监视器系统,我想在第二个监视器的某个位置设置默认启动位置。但是,这应该只在调试模式中发生

您需要添加对
System.Windows.Forms
System.Drawing
(Steve H指出)的引用,然后在构造函数之外的某个地方执行以下操作,如在
初始化
覆盖中

var form = (System.Windows.Forms.Form)System.Windows.Forms.Control.FromHandle(this.Window.Handle);
form.Location = new System.Drawing.Point(0, 0);

我们在代码中使用整个名称空间的原因是为了避免类名冲突(同样,正如Steve H所指出的)。

在MonoGame中:

要更新这个问题,对于MonoGame 3.4(可能更早),您只需

this.Window.Position=新点(x,y)


不需要考虑OpenTK的内容,似乎

点需要对系统的引用。也需要绘图。另外,最好不要为这两个引用添加using语句,因为它们都会对Xna类型(例如Point)产生歧义。你是说我需要在代码的开头添加
using System.Windows.Forms
?我得到一个名称空间错误。可能是一个简单的答案,我只是一个新手。@TankorSmash,您需要右键单击解决方案资源管理器中的
References
,点击
addreference…
,然后浏览到
System.Windows.Forms
,然后使用
System.Drawing
执行同样的操作。谢谢。我用一个“#if DEBUG”指令包装了我的游戏,这样当我发布游戏时它就不会发生。@brainslaugs83,或者,在关闭时将其设置为存储的设置。这样,它也成为终端用户的一项功能。