Answers:
这是您的选择:
要获取后缓冲区大小,请使用:
GraphicsDevice.PresentationParameters.Bounds(用于矩形)或BackBufferWidth和BackBufferHeight。
如果要执行诸如设置视口,截屏等操作,则需要后备缓冲区大小。
要获取Viewport,请使用:
GraphicsDevice.Viewport.Bounds(用于矩形)或Width和Height。
视口的大小是您实际渲染东西时要使用的大小。SpriteBatch就视口而言,传递给它的所有坐标都在像素对齐的客户端空间中:(0,0)表示左上像素,(width-1,height-1)表示右下像素。如果您要进行3D操作,则投影空间将从视口左下方的(-1,-1)变为右上方的(1,1)。
您可以调整视口在屏幕上的大小和位置(用于执行分屏显示等效果)。因此,尽管将其初始化为后缓冲区的大小,但不一定总是相同。
如果您正在做界面布局工作,特别是如果您要在Xbox 360上运行,请注意Viewport.TitleSafeArea。这告诉您在屏幕上肯定可以看到哪些区域,从而可能会切掉某些边框。
如果出于某种原因您实际上是在使用游戏窗口本身,请使用Game.GameWindow.ClientBounds。