Xaml 在windows phone上通过页面导航传递二进制数据

Xaml 在windows phone上通过页面导航传递二进制数据,xaml,windows-phone-8,nokia-imaging-sdk,lumia-imaging-sdk,Xaml,Windows Phone 8,Nokia Imaging Sdk,Lumia Imaging Sdk,我想创建一个二级页面,使用户能够对之前捕获的图像进行后期处理。要将该图像转到第2页,我想将其作为某种参数传递。但我看到的唯一方法是将其作为字符串附加到URL,这听起来效率不高 当然我知道序列化,但以3800万像素的利马1020为例:这几乎是500mb的RAM,尽管我不确定一个字符串理论上是否可以包含这么多数据,但我的风格似乎非常糟糕 所以有没有干净的方法来传递数据,我的意思是:作为参数传递,而不使用e。G静态类?您可以尝试: PhoneApplicationService.Current.Sta

我想创建一个二级页面,使用户能够对之前捕获的图像进行后期处理。要将该图像转到第2页,我想将其作为某种参数传递。但我看到的唯一方法是将其作为字符串附加到URL,这听起来效率不高

当然我知道序列化,但以3800万像素的利马1020为例:这几乎是500mb的RAM,尽管我不确定一个字符串理论上是否可以包含这么多数据,但我的风格似乎非常糟糕

所以有没有干净的方法来传递数据,我的意思是:作为参数传递,而不使用e。G静态类?

您可以尝试:

PhoneApplicationService.Current.State["yourparam"] = param
NavigationService.Navigate(new Uri("/view/Page.xaml", UriKind.Relative));
在另一页,我们可以得到这样的结果

var k = PhoneApplicationService.Current.State["yourparam"];

在页面之间传递数据的最简单方法是使用一个静态类或一个单例来保存您希望在所有页面中都可用的数据


另一个建议使用州词典的答案是有效的,但这可能不是你想要的。使用状态字典要求数据可序列化,有时这需要一些不必要的额外代码。另外,状态字典的主要用途是在应用程序被发送到后台或被删除时保留应用程序的状态,因此它实际上不是用来跨页面传递参数的

在一些类似问题的答案中,还有另一种方法

可以通过扩展NavigationService-来实现。