(wp7基础教程3)
(wp7基础教程1)
(wp7基础教程2)
当前标签: windows phone
posted @ 多个马甲 阅读(14) |
posted @ 多个马甲 阅读(20) |
posted @ 多个马甲 阅读(13) |
posted @ 多个马甲 阅读(25) |
posted @ 多个马甲 阅读(48) |
框架与页面架构
Frame —— 只有一个单独的 —— 包含一个或多个 —— 也包含系统托盘和应用程序栏Page—— 包含标题 , 可以有独立的应用程序栏—— Page 之间可以相互 Navigation(导航)Windows Phone 是基于页面的导航 , 页面上没有状态 在 XAML 里 , 页面进行导航 控件 ="/Views/Music.xaml" 属性 在 CS 代码里 , 页面进行导航 .Navigate(new Uri("/Views/Music.xaml",.Relative)); .Relatvie 指定了跳转为相对路径路径别名—— 在 APP.xaml 里 , 引入命名空间 xmlns:nav="clr-namespace:System.Windows.Navigation;assembly=Microsoft.Phone" ; 注意 , 所在应用程序集 ;assembly=Microsoft.Phone , 而不是 System.—— 在 Application.Resources 节点里 , 添加 别名导航配置信息<!Application Resources><Application.Resources><nav: x:Key=""><nav: Uri="Music" ="/Views/Music.xaml"></nav:><nav: Uri="Video" ="/Views/Video.xaml"></nav:><nav: Uri="Picture" ="/Views/Picture.xaml"></nav:><nav: Uri="" ="/Views/.xaml"></nav:></nav:></Application.Resources>—— 去应用程序的构造函数里 , 映射别名的配置信息App.xaml.cs 的 构造函数 把别名配置信息 , 映射进应用程序 每个应用程序 , 都有一个唯一的最顶级的 Frame this.. = Resources[""] as —— 使用别名进行导航 ; ="Music" Music 就是 别名页面传值 —— 普通传值1 在要跳转的页面后面加参数 ; ="/Views/Music.xaml?musicName=音乐名称2" 2 在接收页面的 xaml 文件里的 <phone: 里添加 “页面加载 事件“ Loaded=""3 在页面加载事件 添加处理代码 , 获取参数 ,赋值等操作if (..Count>0){ .Text = .["musicName"]}—— 别名传值1 别名配置映射信息里 , 添加参数配置信息 <nav: Uri="Music/{musicName}" ="/Views/Music.xaml?musicName={musicName}"></nav:>Music/{musicName} 这里的 musicName 必须和 ?musicName={musicName} 的一样 , 且区分大小写 .2 使用带参数的别名="Music/音乐1" , 这里的 "音乐1" 就是 别名配置信息里 musicName 的值 , 如果不想传递任何职 , 则 Music/ , 反斜杠必须存在 页面间传递对象 可以在 App.xaml.cs 全局应用程序里 , 加一个静态的属性 程序回退按钮 .()重写回退按钮在要重写回退的 xaml 页面上 , 重写事件 , 在处理代码里 e.Cancel = true 就可以重写回退按钮 , 取消了回退的实现 。
WP7中导航页面:
1 | NavigationService.Navigate( new Uri( "/Page1.xaml" , UriKind.Relative)); |
WP7中页面间传值:
WP7页面间传值跟普通的web页面间的传值很类似。
1 | this .NavigationService.Navigate( new Uri( "/Page1.xaml?pagetitle=hello" , UriKind.Relative)); |
另一个页面取值:
1 | this .PageTitle.Text = NavigationContext.QueryString[ "pagetitle" ].ToString(); |
当然可以直接利用应用程序状态来存值:
1 | PhoneApplicationService.Current.State[ "key" ] = "value" ; |
还可以用全局变量来存值,直接利用static来实现,但一般不推荐这样方式。
注意:在页面间存取值,尽量在重载事件OnNavigatedFrom和OnNavbigatedTo里面操作。
()
protected override void OnNavigateFrom()
{ //保存状态 if(PhoneApplicationService.Current.State.ContainKey("Test")) { PhoneApplicationService.Current.State.Remove("Test"); } PhoneApplicationService.Current.State["Test"] =this.textBox1.Text; base.OnNavigateFrom(e);}protected override void OnNavigateTo()
{ if(PhoneApplicationService.Current.State.ContainKey("Test")) this.textBox1.Text=PhoneApplicationService.Current.State ["Test"] as string; base.OnNavigateTo(e);}
(MvvmLight框架教程强大)
(wp7 MvvmLight)
(开启性能监控)
(wp7 MvvmLight)
(wp7 MvvmLight)
(wp7 MvvmLight即Model-View-ViewModel实战)
(wp7 MvvmLight即Model-View-ViewModel实战)
实用功能好站)
(wp7微软开发教程)
(开发强大系列)
(真机开发debug解锁)
(中文地图)
(提交应用)
(控件)
(wp7开源框架)
(入门级)
(psd模版)
) (实战好文) (Coding4Fun Windows Phone Toolkit) (wp开发范例)