【全面解禁!真正的Expression Blend实战开发技巧】第六章 认识ListBox

  • 时间:
  • 浏览:2

  在Objects and timeline面板中,点击下图中最左的“

  唠叨几句

  要是 点击上图中的Browse...按钮,浏览一个多多预先准备好图片的文件夹。要是 点击OK。我电脑中的位置是“e:\图片文件夹”

  在右侧属性面板中,找到StackPanel的Orientation属性,亲戚亲戚朋友看完该属性默认值为vertical,也假如说自上而下排列的,请把它修改为horizontal

    

  你爱不爱我另一个人会问,假设ListBox所含一万张图片数据,一齐加载岂也有 会消耗某些的资源? 你爱不爱我你想到,要是 可不可不都可以随着滚动条向下拖拽,内容被逐步的加载并显示就好了。

  在Objects and timeline面板中,点击下图中最左的“”按钮返回主界面编辑模式。

  完整请参阅http://msdn.microsoft.com/en-us/library/bb613565.aspx  User Interface Virtualization

    

  在弹出对话框中,为你的Template取一个多多名字,要是 点击OK按钮。

原文:

      

  那我亲戚亲戚朋友得到了一个多多默认样式的ListBox,他就像亲戚亲戚朋友常见的ListBox一样,自上而下排列内容。下一步,为了我想要变得特殊某些,请右击ListBox,在弹出菜单中取舍Edit Additional Templates -> Edit Layout Of Items ->Create Empty

  将模板中的StackPanel替换为WrapPanel(替换法律法律依据为:先删除StackPanel,要是 点击工具条上的按钮,在搜索栏中输入wrappanel,稍等1分钟左右,blend才会搜索到wrappanel。要是 按照后面 步骤依然无法找到wrappanel,请确认电脑中是不是安装了Microsoft Silverlight 4 Toolkit April 2010)

    

  下一步,请直接将Property1拖拽到画布上,blend会自动生成一个多多ListBox。并用刚才浏览的图片内容,填充ListBox。

    

  国内某个非常著名的公司有一款siverlight产品,也用到了上图中的布局效果。一次交流中我给亲戚亲戚朋友的开发人员看完我做的一个多多demo,要是 他问我:“你某些布局用的是那此控件啊?stackpanel? wrappanel? grid? ” ,当我跟你爱不爱我是ListBox时他很意外。他我不知道亲戚亲戚朋友产品中,使用grid实现某些效果, 要用code动态生成grid的行与列,把元素一个多多一个多多的加进去去,要是 grid不自带滚动条,某些亲戚亲戚朋友可不可不都可以用code控制滚动条。没有 这般麻烦下才实现了上图中的效果。我听后非常无语,也非常钦佩亲戚亲戚朋友的耐心。我觉得 ,实现后面 的效果假如150秒。兄弟们,打开Blend,跟我一齐做。

  那我一个多多水平方向,从左向右排列的ListBox便制作完毕了。

    

    

  在我做过的项目中某些都用到了图2和3的表达法律法律依据,比如下图中假如用了图3的布局:

  反反复复考虑后,准备把某些章的切入点瞄准ListBox。并用了一个多多看起来特别别扭的标题“认识ListBox",亲戚亲戚朋友看完这里就不爱看完,即使是大学里用winform的学生也会说ListBox我看他好几年了。但我可不可不都可以说,在实际项目开发中,界面元素除了Button,那我使用率最高的假如ListBox,你认识ListBox,但从不认识下面几种特殊的ListBox,也从不知道如保最快速构建那我特殊的ListBox,这眼前 还涉及了blend独有的特别要的一个多多元素的用法,sampledatasource!有兴趣啥后来?好,请看下图。

    

  下一步亲戚亲戚朋友来实现图3中的另外五种效果,可不可不都可以自动换行的ListBox。首先右击ListBox,在弹出菜单中取舍Edit Additional Templates -> Edit Layout Of Items ->Edit Current                  

  这是一个多多拥有10个Item的ListBox。但他的层厚只够显示4项Item,5~10(半透明的每段)用户是看可不可不都可以了的。亲戚亲戚朋友从此可不可不都可以发现,无论ListBox有几条子项,用户同一时间可不可不都可以看完的可不可不都可以了四项,利用某些点,在WPF中,VirtualizingStackPanel无论有几条子项,实际消耗资源的可不可不都可以了用户看完的那四项,当滚动条向下滑动时,会动态的加载后续资源并使其可视化,一齐自动释放移出用户的视野的Items。Silverlight作为WPF的弟弟,当然也默认集成了virtualizes特征。

  那我想要实现了图3中的ListBox效果。

  打开Data面板,点击Create a sample data按钮,在弹出菜单中取舍第一项,new sample data...

    

  要是 blend会自动生成一个多多sampleDataSource,他下面紧跟一个多多名为Collection的集合,集合中所含一个多多属性Property1,Property2,点击Property1最右侧的按钮,在弹出框中将Type类型取舍为Image。如下图所示:

    

    

  在弹出菜单中直接点击OK

  别着急,这是要是 wrapPanle的特征是当wrapPanle的层厚不足英文容下所有子Item时才会换行排列其余的Item。某些亲戚亲戚朋友下一步可不可不都可以禁用ListBox的水平滚动条,我想要内部人员的wrapPanle没有 延展的空间。请点击ListBox,在右侧属性面板中找到HorizontalScrollBarVislbility属性,将它设置为Disabled。

    

    

  眼前 的故事

    

”按钮返回主界面编辑模式。

我觉得 微软要是 替亲戚亲戚朋友考虑并默认集成了某些特征。在WPF中,VirtualizingStackPanel等集合控件五种具有名为virtualizes的特征。请看下图

    

    

  第五章发表后,意外发现我的文章被某些网站转载,银光中国岂也有 还将它装入 了首页的头条。我受宠若惊的我不知道该感谢CCTV还是MTV。最近工作很忙,时间排的很满。本想等忙过这段再继续写,但看完亲戚亲戚朋友的留言,一想到有没有 多人等着看下文,心里就抓心挠肝一样。本文的定位围绕三点“最常用,最实用,最快速”,某些该讲那此比缘何讲更有难度。在此假如亲戚亲戚朋友可不可不都可以我可不可不都可以一齐想题目,我想要在这里留言或邮件发给我。谢谢!

    

    

    

  接下来得到下图中的效果,做到某些步亲戚亲戚朋友要是 会有问提,缘何ListBox某些效果也没有 变化呢?

          

  要是 我想要发现,Objects and timeline面板自动切换到了Template编辑模式。如下图: