【问题标题】:Keeping a fullscreen XNA game on top让全屏 XNA 游戏保持领先
【发布时间】:2023-04-04 14:41:02
【问题描述】:

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

【问题讨论】:

  • 失去焦点是指它自己最小化吗?
  • 是的!当我单击托盘图标时,它会再次全屏显示。
  • 这是正常行为。我想知道是否可以覆盖它。如果没有 - 你可以把底层的 Form 弄乱,让它看起来像是全屏的。

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


【解决方案1】:

我认为全屏通常只有在有焦点的情况下才能工作。您总是可以使应用程序成为一个无边框的窗口,即显示器的大小。所以它仍然是“全屏”而不必有焦点。不久前我写了一些代码来做到这一点,这真的不难让我看看我能不能找到它..

        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] 是主显示器。让我知道这是否有帮助。祝你好运:)

【讨论】:

  • 哇刚刚看了这个问题的日期XD我猜有点晚了。
猜你喜欢
  • 1970-01-01
  • 2013-03-31
  • 2010-10-19
  • 1970-01-01
  • 1970-01-01
  • 2011-09-20
  • 1970-01-01
  • 2021-04-18
  • 1970-01-01
相关资源
最近更新 更多