OnNavigatedTo:重写 OnNavigatedTo 方法以检查导航请求并且准备供显示的页面。这个方法就像是初始化(Ini) ,它先于Loaded事件之前被执行,所以在这里可以控制一些初始化前的操作,或初始化的操作。OnNavigatedTo 方法,是在每次页面成为活动(第一次打开时)页面时调用该方法。Silverlight 框架在每次将元素添加到可视化树时引发 Loaded 事件,在激活某一页面时该事件可能会多次发生。
OnNavigatedFrom:重写 OnNavigatedFrom 方法以便在页面成为非活动时对该页面执行最后的操作。例如,Wp7教学视频中的一个例子,就是用这个方法来的重写来保存TextBox中的值。
例子如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;
using System.Windows.Media.Imaging;
using Microsoft.Phone.Shell; //引入命名空间
namespace Image
{
public partial class MainPage : PhoneApplicationPage
{
// Constructor
public MainPage()
{
InitializeComponent();
}
PhoneApplicationService wp7 = PhoneApplicationService.Current;
//使用PhoneApplicationService这个类一定要引入命名空间Microsoft.Phone.Shell;
protected override void OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e) //当页面成为非活动的时候 的事件
{
wp7.State["ssd"] = textBox1.Text; // 这里是保存textBox1是的值
base.OnNavigatedFrom(e);
}
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) //这是新页面准备的时候//执行的事件,(检查导航请求并且准备供显示的页面时)
{
object someobject; //创建类对像
if (wp7.State.ContainsKey("ssd")) 判断
{
if (wp7.State.TryGetValue("ssd",out someobject)) //
{
textBox1.Text = someobject.ToString();
}
}
base.OnNavigatedTo(e);
}
///下面的代码是WindowsPhone通过按钮的Click的单击事件来动态改Image中的图像,这个不像///ASP.NET p这里要先创建一个位图对像。后然后再给Image的Source传过去
private void button1_Click(object sender, RoutedEventArgs e)
{
BitmapImage myimage = new BitmapImage(new Uri("/Image;component/Images/http_imgload.jpg",UriKind.Relative));
image1.Source = myimage;
//以下是错误的方法
// image1.Resources = "/Image;component/Images/http_imgload.jpg"; /
// image1.Source = "//Image;component//Images//Chrysanthemum.jpg";
}
}
}