【发布时间】:2010-08-24 00:24:17
【问题描述】:
我正在尝试安装一个 XNA WinForms 系统,以便拥有一个游戏编辑器,我需要使用鼠标来完成它。由于 XNA 鼠标输入类根据窗口位置报告鼠标位置,因此我需要将我拥有的表单放在同一个位置。如何获取我的 XNA 游戏使用的窗口的位置?
【问题讨论】:
标签: .net winforms xna window location
我正在尝试安装一个 XNA WinForms 系统,以便拥有一个游戏编辑器,我需要使用鼠标来完成它。由于 XNA 鼠标输入类根据窗口位置报告鼠标位置,因此我需要将我拥有的表单放在同一个位置。如何获取我的 XNA 游戏使用的窗口的位置?
【问题讨论】:
标签: .net winforms xna window location
我最终用这段代码做到了:
Form gameWindowForm = (Form)Form.FromHandle(this.Window.Handle);
...
myForm.Location = new System.Drawing.Point(gameWindowForm.Location.X - 5,gameWindowForm.Location.Y - 5); //-5 pixels for adjustment
效果很好!
【讨论】:
Game.Window.ClientBounds 结构的X 和Y 属性应该为您提供您正在寻找的绝对窗口坐标。
【讨论】:
我的关卡编辑器也遇到了这个问题。我的 Windows 窗体中有一个图片框,所以在初始化 XNA 游戏时我唯一需要做的就是:
Mouse.WindowHandle = this.windowForm.Viewport.Handle;
Viewport 是图片框
现在 XNA 鼠标位置已自动正确调整。
【讨论】: