Я пишу игру для Windows 8, используя MonoGame 3.01 и SwapChainBackgroundPanel для интеграции с XAML. Мои активы оптимизированы для соотношения сторон 16:9, хотя мне также необходимо поддерживать 4:3 из-за различий в разрешениях устройств Win8.
В настоящее время я сталкиваюсь со следующими проблемами:
Перетаскивание игры на второй монитор не меняет размер экрана
_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 (включая режим Snapped)?
РЕДАКТИРОВАТЬ: Просто для уточнения - GamePage_SizeChanged выполняется просто _graphics.ApplyChanges(), который, похоже, не имеет никакого эффекта