从xaml页面返回单一游戏页面。 (Windows Phone 8.1运行时)

时间:2015-03-01 19:05:38

标签: c# windows-phone-8 monogame

我为我的游戏创建了一个单独的xaml页面,我将在其中显示全局提交的高分。我正在为我的游戏使用monogame库,我期待在游戏页面和新的xaml页面中导航时遇到一些问题。

我成功地解决了如何使用以下代码将用户导航到显示高分的xaml页面:

var frame = new Frame();
frame.Navigate(typeof(SubmitScoreDialog)); //SubmitScoreDialog the xaml page
Window.Current.Content = frame;
Window.Current.Activate();

我期待的问题是,当我想要将用户导航回单一游戏页面时,所有必须绘制的图形都不存在...我只是有一个黑屏,我什么都不能做。我用来将用户从xaml页面导航回monogame游戏页面的代码几乎与上面的代码相同:

var frame = new Frame();
frame.Navigate(typeof(GamePage));
Window.Current.Content = frame;
Window.Current.Activate();

我的图形未绘制出来的问题是什么??

感谢。

1 个答案:

答案 0 :(得分:1)

我终于找到了解决问题的方法。 @Bjarke Sogaard 如果你想解决你的问题。使用以下代码更改OnLaunched事件中的App.xaml.cs:

//Declare this variables up in the app.xaml.cs class
public GamePage GamePage;

//In OnLaunched:
var app = App.Current as App;

// Create a main GamePage
if (app.GamePage == null) app.GamePage = new GamePage(string.Empty);
// Place the GamePage in the current Window
Window.Current.Content = app.GamePage;
Window.Current.Activate();

然后,输入此代码,从游戏页面导航到xaml页面:

var frame = new Frame();

frame.Navigate(typeof(SubmitScoreDialog));

Window.Current.Content = frame;

然后导航回游戏页面(在我的例子中为SubmitScoreDialog.xaml.cs):

var app = App.Current as App;

// Create a main GamePage

if (app.GamePage == null) app.GamePage = new GamePage(string.Empty);
Game1.statics.graphics.SupportedOrientations = Microsoft.Xna.Framework.DisplayOrientation.LandscapeRight | Microsoft.Xna.Framework.DisplayOrientation.LandscapeLeft;
// Place the GamePage in the current Window
Window.Current.Content = app.GamePage;

我必须提到这不会解决100%的问题。您可以从游戏页面导航到xaml页面,然后返回。但是当你再次这样做时,游戏会退出......我现在不知道为什么......