Monogame XAML Reset CoreWindow?
本文关键字:CoreWindow Reset XAML Monogame | 更新日期: 2023-09-27 18:34:13
Heey,
我遇到了一个问题。我正在完成完成游戏所需的所有最后测试,但现在我遇到了一个问题。每当我在纵向保持游戏的同时初始化游戏时,游戏都会切换到横向,但Window.Current.CoreWindow
不会更新。因此,Xaml 模板基于纵向设置而不是横向设置创建一个窗口。如何在初始化整个游戏之前更改或更新 CoreWindow?
经过一些研究,我尝试使用游戏ARMED!重现它,我知道它使用Xaml模板,即使在那里我发现了这个问题,当我纵向打开它时,窗口在移回横向时不会更新,因此被卡在破碎的界面/游戏中。
提前谢谢。
CoreWindow 不会自行刷新。它只会在你 Update() 中刷新。因此,如果您想在点击初始化部分之前处理对 CoreWindow 的更改,则需要自己处理它们。
_coreWindow = Window.Current.CoreWindow;
// Create the game.
_game = XamlGame<Main>.Create("", _coreWindow, this);
_coreWindow.Activate();
_coreWindow.Dispatcher.ProcessEvents(CoreProcessEventsOption.ProcessAllIfPresent);
在这里,您可以看到我通过当前的CoreWindow创建了我的游戏。在我的游戏的构造函数完成后,我手动检查和处理 CoreWindow 的任何更改,这些更改可能同时发生(主要是方向更改)并处理它们,以便在我的游戏初始化时它将以适当的完整横向分辨率运行。
它可能不是最干净的解决方案,但就我而言,它可以完成工作。