我正在编写一个使用 MonoGame 3.01 和 SwapChainBackgroundPanel 与 XAML 集成的 Windows 8 游戏。我的资产针对 16:9 纵横比进行了优化,但由于 Win8 设备分辨率的变化,我也需要支持 4:3。
目前我面临以下问题:
将游戏拖到第二台显示器不会调整屏幕大小
_graphics.PreferredBackBufferWidth = (int)width; _graphics.PreferredBackBufferHeight = (int)height; _graphics.ApplyChanges();
在 SwapChainBackgroundPanel (GamePage) 我对大小变化做出反应
void GamePage_SizeChanged(object sender, SizeChangedEventArgs e)
{
Game.SetBackBuffer(e.NewSize.Width, e.NewSize.Height);
}
但是什么也没发生,似乎只应用了初始(在游戏初始化之后)后台缓冲区更改。
- 有没有办法保持纵横比而不是拉伸填充,例如。通过信箱?
在 Windows 8(包括快照视图)上支持多种分辨率的最佳做法是什么?
编辑:只是为了澄清 - GamePage_SizeChanged 正在执行,它只是 _graphics.ApplyChanges() 似乎没有效果