天天看點

【Win10應用開發】自适應磁貼中的分組

老周在上一篇文章中介紹過了自适應磁貼的基本結構,以及給大家示範了一些例子。

本文老周給大夥伴們說說自适應磁貼的另一個特點——分組呈現。

當磁貼的内容被分組後,每個組中的内容就會被視為一個整體。比如某磁貼在更新時定義了其内容包含有兩個組,有些裝置(比如手機、上世紀70年代的電腦、小霸王學習機等)的分辨率較低,磁貼不能顯示兩個組的資訊,于是就會把第一組的内容整個顯示出來,第二組資訊就被忽略。就算空間不夠,連第一組的内容都顯示不全,然而一個組會被視為一個整體,不管空間夠不夠,第一組都要全部呈現。如果空間相當充足,當然兩個分組的内容都會顯示出來。

分組的方法是在binding元素下使用1個或n個group元素,每個group元素代表一組。對于單個group元素而言,它的子元素必須是subgroup(子組)元素,數量可以為n個,但至少你得有一個subgroup元素。正因為如此,group元素下面最少最少都會有一個subgroup元素。

先給大夥看一個例子。

上面定義的這個磁貼,分為兩個組,每個組中都有兩個text元素來呈現文本,雖然group中不打算設定子分組,但必須有一個subgroup,因為group元素的子元素必須為subgroup。

得到的磁貼如下圖所示。

【Win10應用開發】自适應磁貼中的分組

在一個group中,實際上一個subgroup可以了解為一列,因為subgroup元素有一個hint-weight屬性,這個屬性用來定義該subgroup的比重,這個比重實際上是該subgroup的寬度所占的比例。是以說,subgroup其實是用來定義列的。

大家應該會用XAML中的Grid控件,大家不妨想想,Grid在劃分行和列的時候,是不是有一個按比例劃分的方法。比如第一行為1*,第二行為2*,那就是把行的所有空間均分為3等份,第一行占1/3,第二行占2/3。

hint-weight的原理是一樣的,但是,它不用寫“*”,比如,一個組中有兩個subgroup,每個subgroup的hint-weight的值都為1,那麼每個subgroup的寬度将相等,各占50%。

再如,三個subgroup,設定它們的hint-weight屬性。第一個為2,第二個為1,第三個為3,即把所有空間平均分為6份,第一列占2/6,第二列占1/6,第三列占3/6。

請看下面的例子:

每個subgroup的hint-weight的值都為1,表明磁貼将一個組的水準空間平分為5列,每列顯示圖像和文本。

大家注意到,這裡image元素設定了一個hint-removeMargin屬性為true,表示删除圖像的邊距。如果為false,表示保留邊距。預設情況下,圖像周圍的邊距為8,由于這個磁貼内容多,比較擁擠,是以要去掉圖像預設的邊距。

磁貼更新後如下圖所示。

【Win10應用開發】自适應磁貼中的分組

再看下面一例:

一個分組中有三個subgroup,即三列,所有空間被劃分為9等份,第一列占其中1份,第二列占5份,第三列占3份。

磁貼更新後如下圖。

【Win10應用開發】自适應磁貼中的分組

另外,hint-weight屬性還可以使用百分比來劃分列,方法是指定的所有subgroup的weight值加起來剛好等于100,這時候就會被識别為百分比。

看例子。

第一列的比重為70,第二列的比重為30,加起來正好是100,是以識别為百分比。

磁貼更新後的結果如下圖:

【Win10應用開發】自适應磁貼中的分組

好了,本文的牛皮就吹到這裡。

<a href="http://files.cnblogs.com/files/tcjiaan/TileGroupApp.zip" target="_blank">示例源代碼下載下傳</a>

繼續閱讀