【全面解禁!真正的Expression Blend实战开发技巧】第九章 FluidMoveBehavior完全解析之二平滑运动的滚动条
原文:【全面解禁!真正的Expression Blend实战开发技巧】第九章 FluidMoveBehavior完全解析之二平滑运动的滚动条
这一章讲解FluidMoveBehavior的另一个应用,这是一个绝对原创的做法,目前已经被微软收录在silverlight.net,作者就是烤地瓜本人^^ 。这个idea来自silverlight.net一个外国朋友的在论坛中的提问。他在帖子中提起经常在flash中看到许多ListBox当拖拽滚动条时,里面的元素总是很平滑的运动,而不是生硬的跳到眼前。不知道silverlight是不是可以实现这样的效果。这个帖子当时点击率很高,大家都踊跃的讨论思路。大多数人都倾向于自己重写,有的人还给了具体的思路,新建N个类,从继承到接口洋洋洒洒几百行代码。但最后我的回复成为了最佳答案,原因很简单,因为我告诉他他一行代码都不用写。实现这个效果,你只需要30秒。
首先新建一个项目,添加一个ListBox,设置它的宽度为100,高度为200,左对齐,上对齐,然后直接向里面添加20个ListBoxItem,如下图所示:
接下来,右击ListBox,在弹出菜单中选择Edit Template->Edit a copy
在弹出面板中随便取一个名字,然后点击OK按钮。进入ListBoxTemplate编辑模式。然后如下图所示找到ItemsPresenter元素,并选中他。
然后再Assets面板中,找到FluidMoveBehavior,你可以直接双击,将它附加到ItemsPresenter上,也可以直接拖拽他到ItemsPresenter上。
然后退出ListBoxTemplate编辑模式,再次右击ListBox,在弹出菜单中依次选择Edit Additional Templates->Edit Layout of Items-> Creaye Empty,在弹出菜单中随便取一个名字点击OK按钮。
点击F5直接运行程序,然后拖拽滚动条,此时你可以看到ListBoxItem可以平滑的上下运动了。
背后的故事:
最后一步Edit Additional Templates->Edit Layout of Items-> Creaye Empty,我们新建了这个template,但什么也没有操作。但它确是实现这个效果最核心的一步。他将ListBox的容器模板暴露在xaml中。
下一张讲讲解如何让ListBox中的元素飞出ListBox之外,你可以在www.kaodigua.net中看到这种效果。如果你喜欢我的文章,请点一下文章右下角的“推荐”,谢谢。
【全面解禁!真正的Expression Blend实战开发技巧】第九章 FluidMoveBehavior完全解析之二平滑运动的滚动条的更多相关文章
- 【全面解禁!真正的Expression Blend实战开发技巧】第十章 FluidMoveBehavior完全解析之三飞出ListBox吧
原文:[全面解禁!真正的Expression Blend实战开发技巧]第十章 FluidMoveBehavior完全解析之三飞出ListBox吧 刚才有人说我的标题很给力,哈哈.那这个标题肯定更给力了 ...
- 【全面解禁!真正的Expression Blend实战开发技巧】十一章 全面解析布局(Grid & Canvas &StackPanel &Wrappanel)
原文:[全面解禁!真正的Expression Blend实战开发技巧]十一章 全面解析布局(Grid & Canvas &StackPanel &Wrappanel) 写这篇文 ...
- 【全面解禁!真正的Expression Blend实战开发技巧】第七章 MVVM初体验-在DataGrid行末添加按钮
原文:[全面解禁!真正的Expression Blend实战开发技巧]第七章 MVVM初体验-在DataGrid行末添加按钮 博客更新较慢,先向各位读者说声抱歉.这一节讲解的依然是开发中经常遇到的一种 ...
- 【全面解禁!真正的Expression Blend实战开发技巧】第八章 FluidMoveBehavior完全解析之一漂浮移动
原文:[全面解禁!真正的Expression Blend实战开发技巧]第八章 FluidMoveBehavior完全解析之一漂浮移动 好久没更新博客了,今天如果没急事,准备连发三篇,完全讲解Blend ...
- 【全面解禁!真正的Expression Blend实战开发技巧】第四章 从最常用ButtonStyle开始 - PathButton
原文:[全面解禁!真正的Expression Blend实战开发技巧]第四章 从最常用ButtonStyle开始 - PathButton 上一篇我们介绍了TextButton,但为了追求界面的张力, ...
- 【全面解禁!真正的Expression Blend实战开发技巧】第五章 从最常用ButtonStyle开始 - ImageButton
原文:[全面解禁!真正的Expression Blend实战开发技巧]第五章 从最常用ButtonStyle开始 - ImageButton 本章围绕ImageButton深入讨论,为什么是Image ...
- 【全面解禁!真正的Expression Blend实战开发技巧】第二章 你好,UI设计师
原文:[全面解禁!真正的Expression Blend实战开发技巧]第二章 你好,UI设计师 你好,UI设计师 曾几何时我从没想过要与艺术家打交道,但是Silverlight改变了这一切.UI设计师 ...
- 【全面解禁!真正的Expression Blend实战开发技巧】第三章 从最常用ButtonStyle开始 - TextButton
原文:[全面解禁!真正的Expression Blend实战开发技巧]第三章 从最常用ButtonStyle开始 - TextButton 在实际项目中,使用blend做的最多的一定是各种自定义But ...
- 【全面解禁!真正的Expression Blend实战开发技巧】第一章 真正的开发中的最佳的做法
原文:[全面解禁!真正的Expression Blend实战开发技巧]第一章 真正的开发中的最佳的做法 从设计者到开发者 设计师创建一个应用程序的布局然后让开发者去实现. 从开发者到设计者 开发者创建 ...
随机推荐
- Thinking in UML 学习笔记(四)——UML核心视图之活动图
在UML中活动图的本质就是流程图,它描述了为了完成某一个目标需要做的活动以及这些互动的执行顺序.UML中有两个层面的活动图,一种用于描述用例场景,另一种用于描述对象交互. 活动图只是我们用来描述业务目 ...
- 【u008】瑞瑞的木棍
Time Limit: 1 second Memory Limit: 128 MB [问题描述] 瑞瑞有一堆的玩具木棍,每根木棍的两端分别被染上了某种颜色,现在他突然有了一个想法,想要把这 些木棍连在 ...
- 【poj3225】Help with Intervals
Time Limit: 6000MS Memory Limit: 131072K Total Submissions: 12084 Accepted: 3033 Case Time Limit ...
- [React] Use Jest's Snapshot Testing Feature
Often when testing, you use the actual result to create your assertion and have to manually update i ...
- 阿里云域名和ip绑定步骤
阿里云域名和ip绑定步骤 一.总结 一句话总结:域名转IP信息存在所在地运营商那,比如电信联通等. 1.给域名添加对应ip的过程叫做什么? 域名解析 2.域名解析中的记录代表什么意思,记录值呢? 记录 ...
- MySQL忘记root密码不重启mysqld的方法
MySQL忘记root密码不重启mysqld的方法 1.首先得有一个可以拥有修改权限的mysql数据库账号,当前的mysql实例账号(较低权限的账号,比如可以修改zabbix数据库)或者其他相同版 ...
- erlang与c之间的连接
http://blog.chinaunix.net/uid-22566367-id-382012.html erlang与c之间的连接参考资料:网络资料作者:Sunny 在Programming ...
- [GeekBand ] 利用 pass by reference -to -const 编写高效规范的 c++代码
本文参考资料 : GeekBand 侯捷老师,学习笔记 Effective C ++ 侯捷译 条款20 开发环境采用:VS2013版本 首先:分析值传递的缺点 (一) class Person{ p ...
- 两分钟读懂ThreadLocal
ThreadLocal的工作原理 场景 假设一个用户是一个线程.他们都对数据库进行操作,这个时候就会每个用户就会从数据源中开启一个事务以确保能够顺利的打开或者关闭事务.那么如何保证用户与用户之间的数据 ...
- database disk image is malformed解决方法
作者:朱金灿 来源:http://blog.csdn.net/clever101 在Hudson上终止一次Job的运行之后,Hudson在服务器上更新源码出现下图的错误: 查了下英文意思,大意是svn ...