您的位置:首页 > 其它

Windows Phone页面导航和独立存储开发总结

2013-03-10 17:39 531 查看

一、页面导航

windows phone页面导航可以通过两种方法进行设置:一种是直接在XAML中设置;另一种则需要通过编码在托管代码中实现。二者相同的地方是它们最终都需要使用NavigationService类,再调用Navigate方法实现导航。

1、在XAML中设置导航

最简单直接的方式,找到控件,为属性NavigateUri赋值即可,以常用的HyperlinkButton为例:

<HyperlinkButton Content="图片" Height="30" Name="lbtnPicture" Width="200" NavigateUri="/View/Pictures.xaml" />

其中,使用“/”意味着这是一个相对链接,Silverlight for Windows Phone目录层次的路径操作比较严格,如将前面的“/”去掉,编译器将报错并停止运行。

2、托管代码中设置导航

(1)、直接传入URI

void lbtnPicture_Click(object sender, RoutedEventArgs e)
{
NavigationService.Navigate(new Uri("/View/Pictures.xaml", UriKind.Relative));
}

(2)、使用地址别名

地址别名是web技术中的一项很好的扩展,windows phone开发中同样适用。可以将较长命名的URI缩短为一段较短且好记的URI来呈现,比如将/View/Pictures.xaml缩短为Pic:

void lbtnPicture_Click(object sender, RoutedEventArgs e)
{
NavigationService.Navigate(new Uri("Pic", UriKind.Relative));
}

看到“Pic”大家会想到它一定映射到具体的某个URI(“/View/Pictures.xaml”)。如何进行映射呢?

需要在App.xaml.cs文件中额外引入UriMapper别名,映射所在的命名空间如下所示:

xmlns:navigation="clr-namespace:System.Windows.Navigation;assembly=Microsoft.Phone"


实现地址别名,是基于Microsoft.Phone链接库的,接着就是配置对应的映射关系:

<navigation:UriMapper x:Key="UriMap">
<navigation:UriMapping Uri="Pic" MappedUri="/View/Pictures.xaml" />
</navigation:UriMapper>

接着,我们要在App.xaml.cs的构造函数中获取地址别名,将地址别名的key提取到UriMapper对象中:

ConfigFileOperationsvoid SettingsOperation()
{
var appUser = "AppUser";
var settings = IsolatedStorageSettings.ApplicationSettings;
if (settings.Contains(appUser)) //是否存在特定键
{
MessageBox.Show(settings[appUser] == null ? string.Empty : settings[appUser].ToString());
settings[appUser] = "jeffwong@cnblogs.com"; //更新key对应的值
}
else
{
settings.Add(appUser, "jeffwong");
}
settings.Save(); //保存

settings.Remove(appUser); //从独立存储中移除键/值对。如key不存在,返回false,不会删除任何项,也不会引发任何异常

var userName = string.Empty;
bool isOK = settings.TryGetValue<string>(appUser, out userName);
if (isOK)
{
MessageBox.Show(userName);
}

var loginCount = 0;
isOK = settings.TryGetValue<int>("logincount", out loginCount); //获取登录次数
if (isOK)
{
MessageBox.Show(loginCount.ToString());
}

}


参考:

http://msdn.microsoft.com/zh-cn/library/system.windows.navigation.navigationservice.aspx

http://msdn.microsoft.com/zh-cn/library/x7dzh4ws(v=VS.95).aspx

http://msdn.microsoft.com/zh-cn/magazine/dd434650.aspx

http://dev.windowsphone.com/zh-cn

http://www.cnblogs.com/linzheng/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: