C# “制作游戏窗口”;“永远在最上面”;新华社

C# “制作游戏窗口”;“永远在最上面”;新华社,c#,xna,C#,Xna,我想使XNA游戏窗口处于“窗口化”模式,但“始终处于顶部”,有什么方法可以做到这一点吗? 将示例页中的值包含在WinApi类中,并从游戏类调用此函数: WinApi.SetWindowPos(this.Window.Handle, HWND_TOPMOST, 0, 0, 0, 0, TOPMOST_FLAGS); 应该可以了。感谢您的回复,该网页中的代码不会为我编译,但它确实为我指明了正确的方向,这就是我正在使用的代码(使用XNA 3.1) 首先,在与游戏相同的名称空间中复制并粘贴此代码 cl

我想使XNA游戏窗口处于“窗口化”模式,但“始终处于顶部”,有什么方法可以做到这一点吗?

将示例页中的值包含在WinApi类中,并从游戏类调用此函数:

WinApi.SetWindowPos(this.Window.Handle, HWND_TOPMOST, 0, 0, 0, 0, TOPMOST_FLAGS);

应该可以了。

感谢您的回复,该网页中的代码不会为我编译,但它确实为我指明了正确的方向,这就是我正在使用的代码(使用XNA 3.1)

首先,在与游戏相同的名称空间中复制并粘贴此代码

class User32
    {
        [DllImport("user32.dll")]
        public static extern void SetWindowPos(uint Hwnd, int Level, int X, int Y, int W, int H, uint Flags);
    }
我只是把它写在我的主要“游戏”类上面,因为我只在我的游戏类中使用它

然后在game类的LoadContent()中(必须在LoadContent()方法中,在其他任何地方都不能正常工作),将其写在某个地方

User32.SetWindowPos((uint)this.Window.Handle, -1, 0, 0, graphics.PreferredBackBufferWidth, graphics.PreferredBackBufferHeight, 0);
注意:“graphics”是GraphicsDeviceManager的实例,它是在您启动项目时为您预先制作的


这也可用于将游戏窗口定位在屏幕上任何您想要的位置。对我来说,我希望它位于屏幕的左上角。

最简单的方法是将图形设备设置为全屏显示。在主要游戏方法中放置以下代码:

this.graphics.IsFullScreen = true;

我更喜欢没有尺寸的Marcus解决方案:)事实上,我们有非常接近相同的解决方案。。如果您实际查看该页面中的代码,您会发现他的解决方案也有“大小”功能。区别在于我的User32类更简单,使用基本变量而不是对象,并且没有不必要的方便方法。然而,我之所以使用我的解决方案,是因为我在User32类中生成几个常量和静态变量时出现编译时错误。是的,我知道我可以做到这一点,但我的要求是将窗口保持在窗口模式,并使其成为最顶层。我已经同意了我为自己的问题提供的答案,StackOverflow只是不让我接受自己的答案。