Monogame XAML重置CoreWindow?

时间:2013-10-06 23:59:27

标签: c# xaml windows-8 monogame

Heey,

我遇到了问题。我正在完成我为完成游戏而必须做的所有最后一次测试,但现在我碰到了一个问题。每当我以纵向方式举行游戏时初始化游戏时,游戏都会转换为横向,但Window.Current.CoreWindow将不会更新。因此,Xaml模板基于纵向设置而不是横向设置创建窗口。如何在整个游戏初始化之前更改CoreWindow或更新它?

经过一些研究后,我尝试使用游戏ARMED!再现它,我知道使用Xaml模板甚至在那里我发现了这个问题,当我以纵向打开它时,窗口在移回景观时不会更新所以被困在一个破碎的界面/游戏。

提前致谢。

1 个答案:

答案 0 :(得分:0)

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的任何变化,这些变化可能同时发生(主要是方向变化)并处理它们,这样当我的游戏初始化时它将以适当的完整景观分辨率运行

它可能不是最干净的解决方案,但它可以完成我的工作。