最近比较懒惰一直都没写东西,再不写笔里的墨水就快干了。看过前面关于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. cmd看excel有多少个子表_快看!杭州各区5月房价表出炉!现在买套房要多少钱?...
  2. python主要数据变量及其类型说明_Python的数据类型和变量
  3. 解决ajax 发送post 请求时csrf_token 问题
  4. 显示行数 设置ssh终端_linux限制用户登陆的一些方法
  5. struts2在页面显示网页编辑器发布的内容
  6. ubuntu16.04 TLS安装java
  7. javascript入门之算术乘法表
  8. [转载] 高等应用数学问题的matlab求解——第4章 线性代数问题的计算机求解
  9. SAE J1939 协议源代码分析(一)-程序结构框架
  10. 如何让html 兼容IE和chrome,IE Tab(让Chrome兼容IE)
  11. 为什么哪些90后程序员年薪50万+,他们经历了啥?
  12. Elasticsearch语法知多少之Match query
  13. OC 建议实现类似淘宝的物流步骤视图
  14. 成为软件架构师需要什么?
  15. 安卓应用加固壳判断java厂商_使用frida来hook加固的Android应用的java层
  16. 3dmax导出3ds具有过多要导出的面超过64k解决方法
  17. C22合金(N06022)是哈氏合金?还是镍基合金?by阿斯米合金
  18. GrabCut python实现
  19. 学习Java可以从事哪些岗位?
  20. 解决Office 打开Excel 空白问题

热门文章

  1. view5.3登录桌面提示当前可用桌面资源不足
  2. liunx复制备份命令,copy命令,liunx命令
  3. ORM武器:NHibernate(三)五个步骤+简单对象CRUD+HQL
  4. 大数据架构和模式(一)——大数据分类和架构简介
  5. 使用×××版软件中常见的一些错误代码
  6. 强制退出WinForm程序之Application.Exit和Environment.Eixt
  7. Numpy and Matplotlib
  8. C2:抽象工厂 Abstract Factory
  9. Pycharm 建立工程,包含多个工程目录
  10. zencart分类页产品页去掉url中的id号