最近比较懒惰一直都没写东西,再不写笔里的墨水就快干了。看过前面关于LibraryStack 和LibraryBar 的介绍后,大家可能已经对Library 控件系列有了进一步了解,本篇将继续介绍LibraryContainer,它其实就是LibraryStack、LibrayBar 的集合体。
首先,我们仍然需要创建一个DataTemplate 用来控制LibraryStack、LibrayBar 的显示样式。然后新建一个LibraryContainer,在其中增加StackView 和BarView 两种浏览模式。
<s:SurfaceWindow.Resources>
<DataTemplate x:Key="LibraryBarItemTemplate">
<Grid >
<Image Source="{Binding Bitmap}"/>
<Label FontSize="14" Content="{Binding Label}"/>
</Grid>
</DataTemplate>
</s:SurfaceWindow.Resources>
<Grid>
<s:LibraryContainer x:Name="mlibraryContainer">
<s:LibraryContainer.StackView>
<s:StackView ItemTemplate="{StaticResource LibraryBarItemTemplate}"/>
</s:LibraryContainer.StackView>
<s:LibraryContainer.BarView>
<s:BarView ItemTemplate="{StaticResource LibraryBarItemTemplate}"/>
</s:LibraryContainer.BarView>
</s:LibraryContainer>
</Grid>
与上一篇LibraryBar 一样我们继续使用分组的浏览模式,按GroupName 进行分组操作,PhotoAlbum 类请参考这里。
ObservableCollection<PhotoAlbum> items = new ObservableCollection<PhotoAlbum>();
string imagesPath = @"C:\Users\Public\Pictures\Sample Pictures\";
items.Add(new PhotoAlbum(imagesPath + "Hydrangeas.jpg", "Hydrangeas", "Nature"));
items.Add(new PhotoAlbum(imagesPath + "Lighthouse.jpg", "Lighthouse", "Nature"));
items.Add(new PhotoAlbum(imagesPath + "Tulips.jpg", "Tulips", "Nature"));
items.Add(new PhotoAlbum(imagesPath + "Jellyfish.jpg", "Jellyfish", "Animal"));
items.Add(new PhotoAlbum(imagesPath + "Koala.jpg", "Koala", "Animal"));
items.Add(new PhotoAlbum(imagesPath + "Penguins.jpg", "Penguins", "Animal"));
mlibraryContainer.ItemsSource = items;
ICollectionView defaultView = CollectionViewSource.GetDefaultView(items);
defaultView.GroupDescriptions.Add(new PropertyGroupDescription("GroupName"));
运行效果:
Capture
按分组选择:
Capture2 Capture4
点击下方按钮切换为BarView 模式:
Capture3
本文转自Gnie博客园博客,原文链接:http://www.cnblogs.com/gnielee/archive/2011/08/26/wpf-surface2sdk-librarycontainer.html,如需转载请自行联系原作者

WPF 与Surface 2.0 SDK 亲密接触–LibraryContainer 篇相关推荐

  1. WPF 与Surface 2.0 SDK 亲密接触 - ScatterView 篇

    以前的博文我曾向大家介绍过利用WPF 4 开发具有多点触屏功能的应用程序,可参考<Multi-Touch 开发资源汇总>.在那些文章中无论是简单的拖拽,还是复杂的旋转.缩放效果(下文简称M ...

  2. WPF 与Surface 2.0 SDK 亲密接触 - 图形缩放篇

    通过上一篇的介绍大家应该已经了解到ScatterView 可以使开发者方便的实现控件的Manipulate 操作.细心的朋友可能发现了前面示例中矩形的缩放似乎有些问题,为了便于说明我们编写如下代码. ...

  3. WPF 与Surface 2.0 SDK 亲密接触 - ScatterView 数据绑定篇

    与我们常用的一些WPF 控件相同,ScatterView 控件也支持数据绑定功能.本篇将演示如何利用ScatterView 绑定Win7 系统中的样例图片,并且每张图片会以独立的ScatterView ...

  4. 亲密接触VC6.0编译器

    亲密接触VC6.0编译器 大家可能一直在用VC开发软件,但是对于这个编译器却未必很了解.原因是多方面的.大多数情况下,我们只停留在"使用"它,而不会想去"了解" ...

  5. 与Flutter第一次亲密接触-Android 视角

    作者简介 万坤,5年安卓开发经验,16年加入饿了么,现任职饿了么资深安卓开发工程师,负责饿了么物流安卓相关APP线上的高稳定运行. 前言 Flutter在今年6月份发布第一个Release预览版以来, ...

  6. Dapr微服务应用开发系列2:Hello World与SDK初接触

    题记:上篇介绍了Dapr的环境配置,这次我们来动手尝试一下Dapr应用的开发 Hello World Dapr应用的Hello World其实和其他的Hello World一样简单: 首先用你喜欢的语 ...

  7. [360] 《如何保持电力接触网与受电弓亲密接触》

    在列车运行过程中,总希望受电弓与接触线能够始终保持亲密接触.从原理上来说,弓网关系最好的情况莫过于让电流从接触网可靠稳定的"漏"到受电弓上,所以受电弓升起的时候"电弓与电 ...

  8. 亲密接触Redis-第三天(Redis的Load Balance)

    前言 上两天讲述了Redis的基本搭建和基于HA的集群布署方式以及相关的策略和注意点.今天开始讲述Redis的Cluster功能,而这块目前来说网上资料不是太全,就算有1,2篇也只是单讲服务端的搭建也 ...

  9. 与chatGPT的第一次亲密接触

    最近,chatGPT火了,不管传统媒体,还是各种自媒体平台都在说它.今天我突然也想注册一个玩玩,注册前2步还行,但是等点开邮箱校验时,打开网页显示: 上网查了一下,没向中国开放服务:如要注册除了要邮箱 ...

最新文章

  1. 文件上传功能-本地存储、阿里OSS、七牛云
  2. 前端面试时面试官想要听到什么答案(关于一些Vue的问题)
  3. Casper 机制的历史起源:第一篇
  4. 对话DDM:分布式数据库中间件全解析
  5. wifi分析仪怎么看哪个信道好_wifi分析仪如何检测周围wifi信号 wifi分析仪使用方法【详解】...
  6. 使用AndroidStudio开发一个简易的音乐播放器
  7. OpenCV(C++)图像处理基础03:读写像素、像素值修改、像素反差
  8. 【Excel】Excel读取数据时,提示“服务器连接异常”
  9. 4种工资条制作方法,总有一款适合你
  10. 雷军《小米创业思考》读书笔记
  11. 计算机的诞生以及四个发展阶段,计算机发展历史的四个阶段
  12. Android Studio 3.x打开DDMS
  13. 基于Java毕业设计疫情下的进出口食品安全信息管理系统源码+系统+mysql+lw文档+部署软件
  14. 佩尔(Pell)方程最小正整数解
  15. krpano 常用标签
  16. win7桌面图标显示不正常解决
  17. 1024: 万能遥控器
  18. 钟汉良日记:多看电视剧也可以提升写作能力
  19. LaTeX minted报错Package minted Error: Missing Pygments output
  20. 我校梁昌洪教授的“糊涂诗”

热门文章

  1. ceph存储引擎bluestore解析
  2. 如何在同一系统里同时启动多个Tomcat
  3. IOS7原生API进行二维码条形码的扫描
  4. linux sar 命令详解
  5. Git环境搭建及简单的本地、远程 两库关联
  6. Swift 中的内存管理详解
  7. Smart template的控件能否当成普通控件来用
  8. 转载的spring cloud的全家桶,有空学习下
  9. Piranha实验总结
  10. $@ 与 $* 差在哪?