将全屏XNA游戏保持在最佳状态

时间:2012-12-14 09:29:15

标签: windows fullscreen xna-4.0 direct3d multiple-monitors

我有一个全屏xna游戏,应该在辅助屏幕上运行(如果有的话)。一切正常,在二级屏幕上进入全屏模式。但是,当我将窗口聚焦在主屏幕上时,辅助屏幕上的全屏应用程序会失去焦点。 AlwaysOnTop不是一个选项,因为这不是一个表单,而是一个全屏应用程序。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

全屏通常只有在我认为有焦点的情况下才会起作用。您总是可以使应用程序成为一个小于边框的窗口,该窗口是监视器的大小。所以它仍然是全屏"无需专注。我不久前写了一些代码来做这件事,但是我真的不难看出我是否能找到它......

        WindowPoint = Window.Position;
        WindowPoint.X = System.Windows.Forms.Screen.AllScreens[0].WorkingArea.Location.X;
        WindowPoint.Y = System.Windows.Forms.Screen.AllScreens[0].WorkingArea.Location.Y;
        Window.Position = WindowPoint;
        Window.IsBorderless = true;

        graphics.PreferredBackBufferWidth = System.Windows.Forms.Screen.AllScreens[0].WorkingArea.Width;
        graphics.PreferredBackBufferHeight = System.Windows.Forms.Screen.AllScreens[0].WorkingArea.Height;
        graphics.IsFullScreen = false;           
        graphics.ApplyChanges();

我确信有更好的方法可以做到这一点。我还在学习自己,但这可以完成工作。在我的计算机上,AllScreens [0]是第二个监视器,[1]是主监视器。如果这有帮助,请告诉我。祝你好运:)