一般應用程式都會包含多個尺寸的磁貼,如小磁貼(71×71)、中磁貼(150×150)和寬磁貼(310×150)。常規的磁貼更新做法是用xml文件來定義更新內容,然後再提交更新。如:
以上做法是分兩次更新的,那麼,有沒有可能做到一次更新就能同時修改150x150,以及310x150兩種磁貼呢?
先來分析一下,定義磁貼的xml文件是以乙個tile元素作為根節點的,表示它更新的是磁貼,而不是發出toast通知,接下來在tile中包含單個visual元素,visual元素下面是binding元素。
對了,技巧就在這裡了,根據文件的說明,visual元素是可以包含多個binding元素的,而一般乙個binding就是描述乙個模板的磁貼。
啊,有思路了吧? 你應該猜到了,就是在visual元素下多放幾個binding元素,就能同時更新多種磁貼了。
舉個例子,假設我有乙個應用同時支援多種尺寸的磁貼,我希望可以同時更新150x150的和310x150兩種磁貼,那麼我只要把xml文件變為這樣就可以了。
<如何? 咱們試試,看能不能實現。tile
>
<
visual
version
="2"
>
<
binding
template
="tilewide310x150blockandtext02"
fallback
="tilewideblockandtext02"
>
<
text
id="1"
>text field 1
text
>
<
text
id="2"
>text field 2 (block text)
text
>
<
text
id="3"
>text field 3 (under block text)
text
>
binding
>
<
binding
template
="tilesquare150x150text02"
fallback
="tilesquaretext02"
>
<
text
id="1"
>text field 1 (larger text)
text
>
<
text
id="2"
>text field 2
text
>
binding
>
visual
>
tile
>
xmldocument docx = new我這裡是用位於windows.data.xml.dom命名空間下的api來建立xml文件的,如果你覺得這個太複雜,容易混亂,那你可以考慮直接拼接文字,這樣可能不容易弄錯。xmldocument();
//建立根節點
xmlelement tile = docx.createelement("
tile");
//建立visual元素
var visual = docx.createelement("
visual");
//設定特性
visual.setattribute("
version
", "2"
);
//新增第乙個binding元素
var binding = docx.createelement("
binding");
binding.setattribute(
"template
", "
tilesquare150x150text02");
binding.setattribute(
"fallback
", "
tilesquaretext02");
//建立兩個字段
//新增第二個binding元素
binding = docx.createelement("
binding");
binding.setattribute(
"template
", "
tilewide310x150blockandtext02");
binding.setattribute(
"fallback
", "
tilewideblockandtext02");
//新增三個字段
//輸出一下,以檢查是否正確
system.diagnostics.debug.writeline(docx.getxml());
//2、建立通知更新
tilenotification notifi = new
tilenotification(docx);
好,看看效果。
如何如何,這樣是不是省事了。
最後我再廢話一下,不管是磁貼還是toast通知的xml文件,千萬不要去死記硬背,不用記的,用的時候查文件就行了;而且,要有選擇性地運用,也沒必要在乙個應用中把所有的xml模板都用過一遍,這樣會很恐怖的,只要挑選需要的模板就可以了。
WP 8 1開發 電子羅盤
羅盤,估計也不用我過多介紹,學過初中物理的都知道,不管是指南針,還是指北針,其本質就是用來辨別方向的。操作電子羅盤偉感器也不複雜,主要就是兩個角度 1 當前方向與磁北的夾角 2 當前方向與地北的夾角。同時,我們也了解到,地理北極與地磁北極並不是重合的,存在地偏角。在讀取電子羅盤資料時,可以優先考慮讀...
質問微軟 WP8 1開發HTTPS 真費勁
本人用c 多年,wpf2年,一直想做點應用為wp生態貢獻一點力量,最近終於有機會接觸了 家裡的本子是2年前的低壓i3,不支援虛擬化,一直沒有真機.最近同事媽媽換下來乙個820給我拿來做開發用,非常感謝 作為c 開發,一直被其他語言看不起,我想你們中的很多人遇到這個問題的不在少數,但是 我還是堅持下來...
WP8 1 模仿手機通訊記錄的選擇框
2016年11月6日 更新 其實 這個有乙個非常簡單的方法.非常簡單.listview selectionmode multiple 這個一xaml 就可以解決了.製作側邊點選效果也是和上乙個一樣的,等我找時間 弄一下 建議使用itemscontrol作為列表,使用listview的時候,listv...