我为我的游戏创建了一个单独的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();
我的图形未绘制出来的问题是什么??
感谢。
答案 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页面,然后返回。但是当你再次这样做时,游戏会退出......我现在不知道为什么......