当前位置: 首页 > 编程日记 > 正文

WPF 与Surface 2.0 SDK 亲密接触–LibraryContainer 篇

最近比较懒惰一直都没写东西,再不写笔里的墨水就快干了。看过前面关于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,如需转载请自行联系原作者

相关文章:

Transformer 代码完全解读!

作者 | 安晟&闫永强来源 | Datawhale本篇正文部分约10000字&#xff0c;分模块解读并实践了Transformer&#xff0c;建议收藏阅读。2017年谷歌在一篇名为《Attention Is All You Need》的论文中,提出了一个基于attention(自注意力机制)结构来处理序列相关的问题的模型&am…

php后台开发(二)Laravel框架

php后台开发&#xff08;二&#xff09;Laravel框架 为了提高后台的开发效率&#xff0c;往往需要选择一套适合自己的开发框架&#xff0c;因此&#xff0c;选择了功能比较完善的Laravel框架&#xff0c;仔细学来&#xff0c;感觉和Python语言的框架Django非常类似。 Laravel框…

Redis的介绍

Redis的介绍数据库主要类型有对象数据库&#xff0c;关系数据库&#xff0c;键值数据库等等&#xff0c;对象数据库太超前了&#xff0c;现阶段不提也罢&#xff1b;关系数据库就是平常说的MySQL&#xff0c;PostgreSQL这些熟的不能再熟的东西&#xff0c;至于键值数据库则是本…

从源代码编译里程碑的 ICS ROM

从源代码编译里程碑的 ICS ROM 操作系统选择 Ubuntu 10.04&#xff0c; 可以用虚拟机&#xff1b;安装 Android SDK &#xff0c; 并更新&#xff1b;打开命令行窗口&#xff0c; 输入下面的命令&#xff0c; 准备编译环境&#xff1a; sudo apt-get install git-core gnupg f…

Varnish purges 缓存清除

Varnish的缓存清除非常复杂。无论是Varnish的清除方式还是清除时候使用的语法规则等&#xff0c;都是比较复杂。为了理解他&#xff0c;我花费了不少时间&#xff0c;现在我很高兴我知道怎么来解释给大家听了。 1、Varnish有两种方式来清除缓存&#xff0c;其中一种方式是通过命…

如何快速搭建智能人脸识别系统

作者 | 小白来源 | 小白学视觉网络安全是现代社会最关心的问题之一&#xff0c;确保只有特定的人才能访问设备变得极其重要&#xff0c;这是我们的智能手机设有两级安全系统的主要原因之一。这是为了确保我们的隐私得到维护&#xff0c;只有真正的所有者才能访问他们的设备。基…

全局唯一ID生成方案

2019独角兽企业重金招聘Python工程师标准>>> 全局唯一ID生成方案对比 - http://cenalulu.github.io/mysql/guid-generate/ 转载于:https://my.oschina.net/meilihao/blog/386264

大型互联网 b2b b2c o2o 电子商务云平台

技术解决方案 开发语言&#xff1a; java、j2ee 数据库&#xff1a;mysql JDK支持版本&#xff1a; JDK1.6、JDK1.7、JDK1.8版本 核心技术&#xff1a;分布式、云服务、微服务、服务编排等。 核心架构&#xff1a; 使用Spring Cloud分布式微服务云架构进行服务化开发&#xff0…

Linux下redis安装部署

1、下载源代码 http://code.google.com/p/redis/downloads/list 下载redis-1.2.6.tar.gz 将下载包拷贝到/usr/local/webserver/redis-1.2.6/下 2、安装 tar -zxvf redis-1.2.6.tar.gzce redis-1.2.6make 3、调整内存 如果内存情况比较紧张的话&#xff0c;需要设定内核参数&am…

阿里无人车配送快递突破 100 万单,小蛮驴牵引的自动驾驶战略布局

作者 | 张昊 出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09; 从物流的“最后”三公里中&#xff0c;我们看到了自动驾驶技术的“最前”沿 在9月27日举办的达摩院媒体沟通会上&#xff0c;阿里巴巴集团副总裁、达摩院自动驾驶实验室负责人王刚宣布&#xff0c;达摩院…

[Python] 中文路径和中文文本文件乱码问题

情景: Python首先读取名为log.txt的文本文件, 其中包含有文件名相对路径信息filename. 随后Python调用shutil.copy2(src, dst)对该filename文件进行复制操作. 由于filename为相对路径信息, 所以我们需要硬编码写入父目录, 假设为"C:\\源目录\\", 同时还有目标目录信息…

kubernetes Helm

Helm产生原因利用Kubernetes部署一个应用&#xff0c;需要Kubernetes原生资源文件如deployment、replicationcontroller、service或pod 等。而对于一个复杂的应用&#xff0c;会有很多类似上面的资源描述文件&#xff0c;如果有更新或回滚应用的需求&#xff0c;可能要修改和维…

造车新势力“围猎”秋招,应届生如何拿下高薪 offer ?

作者 | 易璜珵 出品 | 《新程序员》近年来&#xff0c;互联网大厂的秋招开启得越来越早&#xff0c;只为先人一步将优秀的毕业生纳入麾下。所谓“金九银十”&#xff0c;九月即将结束&#xff0c;许多大厂的秋招正式批也逐渐进入笔试和面试环节。在新能源汽车领域&#xf…

云评测、云监测、云加速,性能魔方mmTrix全球速度最快

在移动互联网高速发展的今天&#xff0c;互联网企业如果要实现业务增长&#xff0c;在激烈的市场竞争中站稳脚跟&#xff0c;必须要尽可能的提高用户体验和产品影响力。而要达实现这个目标&#xff0c;产品应用性能质量的好坏往往起到重要作用&#xff0c;APM服务受到了越来越多…

水平切分与垂直切分

数据库优化无非水平切分与垂直切分&#xff01; 1.水平.就是按记录分. 一个数据库有3000W用户记录.处理速度比较慢.这时可以把3000W.分成三份.每份都是1000W.分别放在不同的机器上. 2.垂直分割就是按字段分. 一个数据库有3000W用户记录.包括字段id,user,password,first_name,l…

iOS 设计模式浅析 1 - 策略

本篇文章主要讲三个点: 1. 什么是策略模式.2. 策略模式的优缺点.3. demo .1. 策略模式定义一系列算法, 并且将每个算法封装起来, 算法之间可以互相替换. 使用前提: 输入已知, 好比你渴了, 可以喝可乐, 可以喝牛奶, 也可以喝水. 在我们项目中比较常见的使用情况: 1. 切换主题, 要…

何崚谈阿里巴巴前端性能优化最佳实践

转载&#xff1a;http://www.infoq.com/cn/interviews/hl-alibaba-front-end-performance-optimization 大家好&#xff0c;我现在在阿里巴巴园区采访阿里巴巴中文站架构师&#xff0c;兼B2B网站优化领域的负责人何崚。何崚你好&#xff0c;请简单介绍一下你自己。 我叫何崚&am…

java基础_04

2019独角兽企业重金招聘Python工程师标准>>> 1、java语言的程序结构。Java语言支持3种程序结构&#xff1a;顺序结构、选择结构&#xff08;分支结构&#xff09;、循环结构2、顺序结构是最简单、最普遍的一种。java程序如果没有意外都是按照从前到后、从左到右的顺…

会唱歌、会弹琴,清华大学 AI 学生华智冰火了

整理 | 禾木木 出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09; 清华大学计算机系知识工程实验室&#xff0c;开发的中国首个原创虚拟学生——华智冰&#xff0c;与近日亮相。她的声音、肢体动作全部由人工智能完成。 今年6月&#xff0c;清华大学计算机系录取了一位…

22. Node.Js Buffer类(缓冲区)-(二)

转自&#xff1a;https://blog.csdn.net/u011127019/article/details/52512242转载于:https://www.cnblogs.com/sharpest/p/8046463.html

linux安装sphinx

从sphnix网站下载sphinx源码包&#xff0c;当前最新版本是&#xff1a; http://sphinxsearch.com/files/sphinx-0.9.9.tar.gz。当然&#xff0c;还需要保证你的系统已经安装了mysql。其次&#xff0c;就是依照官方的安装指导进行安装了&#xff0c;基本步骤如下&#xff1a;解压…

机器人越像人越好?被机器人盯着会变『蠢』

编译 | 禾木木 出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09; 摘要&#xff1a;人形机器人的凝视会影响人们对社会决策任务的反应方式。 资料来源&#xff1a;IIT 你是否遇到过这种问题&#xff0c;跟别人对是不超过三秒&#xff1f;当你直视别人眼睛的时候&#x…

SQL Server 储存过程的output 参数

要做的参数的回传一方面要做到有储存过程的配合&#xff0c;再一方面也要有调用方法的配合&#xff0c;也就是说错误的调用方法是没有办法把值回传的。 下面是例子 --1、储存过程方面的配合 create procedure dbo.usp_C i as int output ---**注意这里要用output 关键字**--…

JavaScript基础笔记集合(转)

JavaScript基础笔记集合 JavaScript基础笔记集合js简介 js是脚本语言。浏览器是逐行的读取代码&#xff0c;而传统编程会在执行前进行编译 js存放的位置 html脚本必须放在<script>、</script>之内。 <script>可放置在<head>、<body>里 和css一…

Xapian安装

Xapian是一个用C编写的全文检索程序&#xff0c;他的作用类似于Java的lucene。Xapian除了提供原生的C编程接口之外&#xff0c;还提供了Perl&#xff0c;PHP&#xff0c;Python和Ruby编程接口和相应的类库&#xff0c;所以你可以直接从自己喜欢的脚本编程语言当中使用Xapian进行…

IOS开发中多线程的使用

一、创建多线程的五种方式1.开启线程的方法一 NSThread * thread[[NSThread alloc] initWithTarget:self selector:selector(_update) object:nil]; 2.开启线程的方法二 [NSThread detachNewThreadSelector:selector(_update) toTarget:self withObject:nil]; 3.开启线程的方法…

介绍如何用 Python 来绘制高清的交互式地图,建议收藏

作者 |俊欣来源 |关于数据分析与可视化今天小编来为大家介绍一个叫做Folium的模块&#xff0c;我们可以用它来绘制高清的交互式地图&#xff0c;并且标注出重要的地理位置等等&#xff0c;读者在看过本篇文章之后&#xff0c;读者大致会掌握1. 使用Folium来进行交互式地图的绘制…

Pandas Cheat Sheet

Pandas Doc: http://pandas.pydata.org/pandas-docs/stable/10min.html#min 转载于:https://www.cnblogs.com/nuswgg95528736/p/8053582.html

google ProtoBuf开发者指南

目录 1 概览 1.1 什么是protocol buffer 1.2 他们如何工作 1.3 为什么不用XML? 1.4 听起来像是为我的解决方案&#xff0c;如何开始? 1.5 一点历史 2 语言指导 2.1 定义一个消息类型 2.2 值类型 2.3 可选字段与缺省值 2.4 枚举 2.5 使用其他消息…

AI 生成的代码可信吗?编写的代码有 Bug 吗?

编译 | 禾木木 出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09; 即使是帮助开发人员编写软件的工具也会产生类似的bug。 目前&#xff0c;大部分的软件开发人员会让 AI 帮助开发者们编写代码&#xff0c;但是开发人员发现 AI 会像程序员的代码一样还是存有 bug。 去年…