[开发] 在APP中共用应用程式列

楼主: hoyunxian (WildDagger)   2014-06-05 22:30:00
这个问题Win8.1才会碰到,WP因为不支援上方应用程式列所以应该是没机会
(这是真的,开发文件已经说你要是在Page有定义上方应用程式列就会闪退给你看)
有看微软的开发文件,应该都会看到微软有在文件中提到,
上方应用程式列应该要能够担当导览列的功能
(亦即我们常在网站上看到的那一排指示网站主要功能的功能列)
在这前提下,自然每一页都要有上方应用程式列,
不过如果你的页面多达十数个
(这是夸张化,实际上有善用资料绑定的话应该不可能超过十页吧)
每一页都要建同样的应用程式列与触发事件也许太不实际了
最好的方法,当然是让所有页面共用一个应用程式列就好
微软的官方网站上也有给教学:
http://msdn.microsoft.com/zh-tw/library/windows/apps/xaml/jj150604.aspx
不过如果只给这个的话某程度上是在骗文章数(喂
所以这边是稍微做补遗还有提示可以善用的方向
简单来说,就是在首页里面再加上一层Frame,
然后在这个Frame里面显示APP的其他内容,
至于应用程式列就直接定义在首页中,这样子就可以达到共用的效果
如果感觉有点难理解的话,只要把Frame元件想像成HTML的Iframe标签
或者甚至当成你的浏览器中显示内容的那个区块
(简单说设在首页的应用程式列相当于浏览器的工作列,
其他页面就相当于呈现在浏览器内容框中的网页)
(其实在Clark大与Ian大写的《HTML5 & JavaScript程式开发实战》这本书中
就有提到类似的概念,不过因为里面是用HTML5写Win8 APP所以可能比较不好懂)
至于关于那篇教学的部分,这边做一点补充
1. 按照教学在Grid里面建立rootFrame这个Frame元件后,
实际上打开是不会有反应的,你必须自己让rootFrame去导览到真正的首页才行
这边先假设真正首页的名字是DefaultPage.xaml,
那么程式码如下:
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e); // (这句有没有都无所谓)
rootFrame.Navigate(typeof(DefaultPage));
}
虽然可能有些文件会告诉你Frame.Navigate这个方法
在OnNavigatedTo/OnNavigatedFrom这两个事件中是不会作用的
但那是指于这两个事件中在该文件所在的页框中呼叫该页框的Navigate方法,
该页框不会有任何反应这件事
这段程式码不是去呼叫首页所在页框中的Navigate方法
而是去呼叫首页中的Frame的Navigate方法,因此这个方法会有效
另外传送参数的方法和普通的巡览页面是相同的,请放在Navigate方法的第二个参数。
2. 范例中是呼叫GetType的方法去取得页面物件并进行巡览方法,
但是我实际使用的时候不知道是哪里漏了,GetType方法抓不到子命名空间中的页面
所以最后我只好直接用判断按钮Name/Tag的方式
如果没有什么特大问题的话其实用if判断式或switch判断式也无妨
这个方法主要是使用在Win8.1上,
不过如果有用Universal App的话,其实也能考虑用这个方法
在Win8.1的环境下把导览之类的交给上方导览列
在WP8.1的环境下可以直接用手机上的巡览功能做处理
这样就有更多东西可以共用了。
(刚才才终于把捷运APP用的资料编辑程式给写好......有点头痛)
作者: ZSZ1210 (梦)   2014-06-05 23:05:00
推推
作者: Cena520 (席纳)   2014-06-05 23:44:00
恩,原来如此…
作者: s8974135620 (果汁( –口–)/)   2014-06-06 00:12:00
看不懂 不过还是推
作者: ccufcc (皮卡波)   2014-06-06 00:21:00
中共
作者: Lumia925 (Lumia)   2014-06-06 00:26:00
看成中共+1...
作者: BenShiuan (璇璇)   2014-06-06 00:36:00
中共+1
作者: pumua (丹)   2014-06-06 00:38:00
推 当时自己慢慢查了好久
作者: awesomemaxe (风见 隼人)   2014-06-06 01:36:00
看成中共+1
作者: TsaoCCFGOGO (书唸累时,就算数学吧)   2014-06-06 09:22:00
推 中共
作者: slodnet (冰晶雪花)   2014-06-06 09:29:00
在App,中共用应用程式列
作者: jovialian (嶬恩)   2014-06-06 09:40:00
专业推。看成中共用应用程式+1。
作者: Luftwaffe (德意志帝国空军)   2014-06-06 09:55:00
看成中共用应用程式+1
作者: loamanda (LM)   2014-06-06 14:29:00
中共再+1
作者: white123123 (白☆)   2014-06-06 19:19:00
看成在中共用APP...
作者: LiaoKen02 (旭陵生活-嘉义高中)   2014-06-06 20:17:00
中共..
作者: ch25 (Wallace)   2014-06-06 22:05:00
什么?中共?退回服贸 捍卫民主
作者: dosser (我肚子还有点饿...)   2014-06-07 00:18:00
看成中共+1
作者: felaray (傲娇鱼)   2014-06-07 01:09:00
还没注意过这个部分..先推好了..
作者: salvador1988 (Mr.Owl)   2014-06-07 15:26:00
看成中共+1 想说是关键字封锁app之类的

Links booklink

Contact Us: admin [ a t ] ucptt.com