C# XNA游戏开始在笔记本电脑屏幕上播放

C# XNA游戏开始在笔记本电脑屏幕上播放,c#,xna,window,C#,Xna,Window,目前,我的XNA PC游戏在无边界窗口模式下运行,直到最近在我的新笔记本电脑上运行良好。它似乎开始在屏幕左上角画出几百个像素。这在屏幕底部和右侧留下了一个间隙,在那里你可以看到游戏下方的桌面。所有的鼠标坐标都精确到你应该用鼠标点击的地方,即使它没有画在正确的地方 我的旧笔记本电脑画得很正确,但我刚买的这台新笔记本电脑似乎不知怎么坏了。我正在使用David Amador的分辨率类通过以下方式设置虚拟分辨率: graphics = new GraphicsDeviceManager(this); R

目前,我的XNA PC游戏在无边界窗口模式下运行,直到最近在我的新笔记本电脑上运行良好。它似乎开始在屏幕左上角画出几百个像素。这在屏幕底部和右侧留下了一个间隙,在那里你可以看到游戏下方的桌面。所有的鼠标坐标都精确到你应该用鼠标点击的地方,即使它没有画在正确的地方

我的旧笔记本电脑画得很正确,但我刚买的这台新笔记本电脑似乎不知怎么坏了。我正在使用David Amador的分辨率类通过以下方式设置虚拟分辨率:

graphics = new GraphicsDeviceManager(this);
Resolution.Init(ref graphics);

control = Control.FromHandle(this.Window.Handle);
Resolution.SetVirtualResolution(GraphicsAdapter.DefaultAdapter.CurrentDisplayMode.Width, GraphicsAdapter.DefaultAdapter.CurrentDisplayMode.Height);
Resolution.SetResolution(GraphicsAdapter.DefaultAdapter.CurrentDisplayMode.Width, GraphicsAdapter.DefaultAdapter.CurrentDisplayMode.Height, false);
我将fullscreen设置为false,然后在创建游戏屏幕后,执行以下操作将其设置为无边界:

Form gameForm = (Form)Form.FromHandle(curGame.Window.Handle);
gameForm.FormBorderStyle = FormBorderStyle.None;
我试着用“gameForm.Location=new System.Drawing.Point(0,0);”来强制设置它在(0,0)开始绘制,但在我当前的设置中,它似乎没有任何作用,因为我可以将它设置为(150,150),它不会在那里开始绘制。这是我的笔记本电脑的屏幕截图,显示了它是如何移动窗口并切断暴露桌面的左侧和顶部的:


有人知道为什么它会发生在我的新笔记本电脑上,而在我的台式机或旧笔记本电脑上从来没有发生过吗?

hm似乎与无边界有关。关闭它可以修复它,全屏工作正常。奇怪的是,我添加了
gameForm.WindowState=FormWindowState.Maximized现在它在正确的位置启动,但它运行在屏幕的底部和右侧。