Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Windows Phone 8.1背后的代码中创建新页面_C#_Xaml_Navigation_Windows Phone 8.1 - Fatal编程技术网

C# 在Windows Phone 8.1背后的代码中创建新页面

C# 在Windows Phone 8.1背后的代码中创建新页面,c#,xaml,navigation,windows-phone-8.1,C#,Xaml,Navigation,Windows Phone 8.1,目前在Windows Phone 8.1中,如果我想导航到一个新页面,首先我必须创建一个新页面项-MyNewPage,它生成一个XAML和CS文件。为了导航到它,我执行以下操作: Frame.Navigate(typeof(MyNewPage)); 现在,我想知道是否可以在code behind中创建一个新页面并导航到它,例如: Page myNewPage = new Page(); Frame.Navigate(typeof(myNewPage)); 由于Navigate方法只接受typ

目前在Windows Phone 8.1中,如果我想导航到一个新页面,首先我必须创建一个新页面项-
MyNewPage
,它生成一个XAML和CS文件。为了导航到它,我执行以下操作:

Frame.Navigate(typeof(MyNewPage));
现在,我想知道是否可以在code behind中创建一个新页面并导航到它,例如:

Page myNewPage = new Page();
Frame.Navigate(typeof(myNewPage));
由于Navigate方法只接受
typeof()
,如何实现这一点?

表示可以将任何对象作为第二个参数传递给另一个版本的Frame.Navigate方法。我认为您可以使用它(我建议您希望从新页面或smth的代码隐藏中填充一些属性…)。也可以在导航后从框架访问页面。想想看,这可能会有帮助

var root = Window.Current.Content as Frame;
        var mainPage = root.Content as Page;
多亏了你,我才得以成功。最后的代码如下所示:

Page myNewPage = new Page();
Type pageType = myNewPage.GetType();
Frame.Navigate(pageType);
或者更简单一点:

Page myNewPage = new Page();
Frame.Navigate(myNewPage.GetType());

myNewPage.GetType()
?这将在
页面中传递,因此不确定这是否是您想要的。这是有意义的,但不起作用。更新:事实上它确实有效,我做错了。请张贴一个答案,这样我就可以接受了。谢谢!:)有趣的是我在胡乱猜测。我不打算以此为基础做出回答。其他人(或你自己)可以捡起来。无论如何,非常感谢你的疯狂猜测DIt是一个很好的建议@PolarBear,但是对于我的场景,我需要能够用代码完成所有事情,仅仅发送第二个参数对我来说是不够的。