windows phone页面间数据共享
2013-03-04 14:08:44 来源:WEB开发网核心提示:if (shareColor != null){this.ContentPanel.Background = new SolidColorBrush(shareColor.Value);}base.OnNavigatedTo(e);}private void txt2_ManipulationStarted(objec
if (shareColor != null)
{
this.ContentPanel.Background = new SolidColorBrush(shareColor.Value);
}
base.OnNavigatedTo(e);
}
private void txt2_ManipulationStarted(object sender, ManipulationStartedEventArgs e)
{
if (this.ContentPanel.Background is SolidColorBrush)
{
(Application.Current as App).SharedColor = (this.ContentPanel.Background as SolidColorBrush).Color;//在返回到MainPage页面之前将当前Color对象保存到App类的属性中
}
this.NavigationService.GoBack();
e.Complete();
e.Handled = true;
}
protected override void OnManipulationStarted(ManipulationStartedEventArgs e)
{
//当触摸到页面里textblock以外的部分时,contentpanel的背景会变成随机颜色。
this.ContentPanel.Background = new SolidColorBrush(Color.FromArgb(255, (byte)rand.Next(255), (byte)rand.Next(255), (byte)rand.Next(255)));//设置背景颜色
base.OnManipulationStarted(e);
}
}
}
运行程序你就会发现在页面之间进行导航时,页面总是共享相同的颜色。
其实你在App类所定义的属性在这里相当于一个全局变量,整个应用程序皆可访问。
你可以通过静态属性PhoneApplicationService.Current来获取现有PhoneApplicationService的实例,如下所示:
PhoneApplicationService appService = PhoneApplicationService.Current;
PhoneApplicationService类定义在命名空间Microsoft.Phone.Shell中,它的实例在标准的App.xaml文件中创建:
<Application.ApplicationLifetimeObjects>
<!--处理应用程序的生存期事件所需的对象-->
<shell:PhoneApplicationService
Launching="Application_Launching" Closing="Application_Closing"
Activated="Application_Activated" Deactivated="Application_Deactivated"/>
</Application.ApplicationLifetimeObjects>
PhoneApplicationService包含一个State属性(类型为IDictionary<String,object>)可用于保存和恢复数据。但该State字典只适用于存储程序同一次运行过程中的临时数据。如果需要在程序多次执行过程之间保存数据,建议使用独立存储。访问State属性内容类似下面所示:
Color clr = (Color)appService.State["Color"];
appService.State["Color"] = clr;
{
this.ContentPanel.Background = new SolidColorBrush(shareColor.Value);
}
base.OnNavigatedTo(e);
}
private void txt2_ManipulationStarted(object sender, ManipulationStartedEventArgs e)
{
if (this.ContentPanel.Background is SolidColorBrush)
{
(Application.Current as App).SharedColor = (this.ContentPanel.Background as SolidColorBrush).Color;//在返回到MainPage页面之前将当前Color对象保存到App类的属性中
}
this.NavigationService.GoBack();
e.Complete();
e.Handled = true;
}
protected override void OnManipulationStarted(ManipulationStartedEventArgs e)
{
//当触摸到页面里textblock以外的部分时,contentpanel的背景会变成随机颜色。
this.ContentPanel.Background = new SolidColorBrush(Color.FromArgb(255, (byte)rand.Next(255), (byte)rand.Next(255), (byte)rand.Next(255)));//设置背景颜色
base.OnManipulationStarted(e);
}
}
}
运行程序你就会发现在页面之间进行导航时,页面总是共享相同的颜色。
其实你在App类所定义的属性在这里相当于一个全局变量,整个应用程序皆可访问。
你可以通过静态属性PhoneApplicationService.Current来获取现有PhoneApplicationService的实例,如下所示:
PhoneApplicationService appService = PhoneApplicationService.Current;
PhoneApplicationService类定义在命名空间Microsoft.Phone.Shell中,它的实例在标准的App.xaml文件中创建:
<Application.ApplicationLifetimeObjects>
<!--处理应用程序的生存期事件所需的对象-->
<shell:PhoneApplicationService
Launching="Application_Launching" Closing="Application_Closing"
Activated="Application_Activated" Deactivated="Application_Deactivated"/>
</Application.ApplicationLifetimeObjects>
PhoneApplicationService包含一个State属性(类型为IDictionary<String,object>)可用于保存和恢复数据。但该State字典只适用于存储程序同一次运行过程中的临时数据。如果需要在程序多次执行过程之间保存数据,建议使用独立存储。访问State属性内容类似下面所示:
Color clr = (Color)appService.State["Color"];
appService.State["Color"] = clr;
更多精彩
赞助商链接