在Windows 8中SemanticZoom縮放視圖支持對GridView和ListView控件的視圖效果進行縮放,它提供一個詳細信息視圖(ZoomedInView)以讓用戶查看詳細信息,另外提供一個縮小索引視圖(ZoomedOutView)讓用戶快速定位想要查看信息的大概范圍。
一.想要實現這種效果我們需要使用SemanticZoom控件和CollectionViewSource控件配合使用:
SemanticZoom控件:
- <SemanticZoom.ZoomedOutView>
- <!--此處填充縮小索引視圖的GridView,一般情況下綁定Group.Title-->
- </SemanticZoom.ZoomedOutView>
- <SemanticZoom.ZoomedInView>
- <!--此處填充平常普通的GridView,顯示詳細信息-->
- </SemanticZoom.ZoomedInView>
CollectionViewSource是一個和前台UI控件進行互動的集合源。
Source:源數據綁定屬性
IsSourceGrouped:是否允許分組
View:獲取當前與 CollectionViewSource 的此實例關聯的視圖對象
View.CollectionGroups:返回該視圖關聯的所有集合組。
二.現在通過一個實例來看如何使用SemanticZoom實現縮放視圖,本實例接前一篇文章實例。
1.前台設置CollectionViewSource控件
- <Grid.Resources>
- <CollectionViewSource x:Name="itemcollectSource" IsSourceGrouped="true" ItemsPath="ItemContent" />
- </Grid.Resources>
2.前台繪制ZoomedInView視圖和ZoomedOutView視圖GridView
- <SemanticZoom x:Name="semanticZoom" VerticalAlignment="Center">
- <SemanticZoom.ZoomedOutView>
- <GridView ScrollViewer.IsHorizontalScrollChainingEnabled="False" >
- <GridView.ItemTemplate>
- <DataTemplate>
- <!--注意此處綁定的是實體集的GroupTitle屬性-->