Вот ваши варианты:
Чтобы получить размер заднего буфера, используйте:
GraphicsDevice.PresentationParameters.Bounds(для прямоугольника) или BackBufferWidthи BackBufferHeight.
Вы хотите размер заднего буфера, если вы делаете такие вещи, как настройка области просмотра, снимки экрана и т. Д.
Чтобы получить видовой экран , используйте:
GraphicsDevice.Viewport.Bounds(для прямоугольника) или Widthи Height.
Размер области просмотра - это то, что вы хотите использовать при рендеринге . Любые передаваемые вами координаты SpriteBatchнаходятся в выровненном по пикселям клиентском пространстве с точки зрения области просмотра: (0,0) для верхнего левого пикселя и (ширина-1, высота-1) для нижнего правого. Если вы занимаетесь трехмерными вещами, пространство проекции изменяется от (-1, -1) в нижнем левом углу окна просмотра до (1,1) в верхнем правом углу.
Вы можете настроить размер и положение области просмотра на экране (для создания таких эффектов, как разделение экрана). Таким образом, хотя он инициализируется размером заднего буфера, он не обязательно всегда один и тот же.
Если вы занимаетесь разметкой интерфейса, особенно если вы будете работать на Xbox 360, будьте внимательны Viewport.TitleSafeArea. Это говорит вам, какой регион определенно виден на экранах, которые могут отрезать некоторые границы.
Если по какой-то причине вы работаете с самим игровым окном, используйте Game.GameWindow.ClientBounds.