快捷搜索:

WPF界面设计技巧(5)—自定义列表项呈现内容

本文示例源代码或素材下载

接上文:

下面慢慢解说一下代码。

首先必要引入一个命名空间,便是 FileInfo 类所在的 System.IO 命名空间,我们将它的又名定义为“c”。

DataTemplate 标记是为界面中呈现的数据类型定义的显示模板,假如不指定 x:Key 的话,那么界面上不管何处呈现此类型的工具,都邑转为这样的显示要领。

WrapPanel 是一种简单的容器元素,它会把它里面的所有元素都横着排列,排不下了就换一行接着排,这类似网页的默认结构模式,很轻易掌握。

WrapPanel.ToolTip 内定义的便是对象提示里的那个缩略图和翰墨了,其他代码都很简单就不多说了。

很多人感觉对象提示里可以放图片是一件很神奇的事,切实着实很让人惊喜,然则着实WPF元素的内容款式基础都是 Object 类型的,也便是说,你可以放统统你能想到的器械进去!按钮、视频、文档甚至3D模型,都可以哦。

我们来看触发器,这个触发器定义的 Height 是谁的属性呢?记得曩昔我们自定义样式时怎么显示元素的内容吗?对,ContentPresenter,这便是所有内容的总容器。

为什么要在 ContentPresenter 高度为 68 的时刻触发动画呢?这着实我是使了个歪点子~我没找到数据内容响应上层元素属性变更的措施,以是就用 ContentPresenter 高度变更与这边孕育发生联动,从而间接相应 ListBox 那边的 IsSelected 属性变更。

动画的内容便是把先前暗藏的图片和一行翰墨显示并放大年夜出来,没什么难点的。

行了,代码部分解说完了,我们来谈谈若何完善这个法度榜样。

这法度榜样样子容貌不错,然则有几点很不爽:

1 显示文件的大年夜小的单位是字节,这让人很晕。

2 选择了非图片文件不会显示任何提示,只是图片处空了。

3 FileInfo工具的内容在后台被变动不会及时反应到界面上。

对应的办理法子:

1 采纳自定义类,获取需要的 FileInfo 工具的部分属性值,定义专门用于以其它单位显示文件大年夜小的属性。

2 照样采纳自定义类,获取 FileInfo 工具的扩展名属性,将之付与自定义的一个依附属性上,依附属性可以被触发器 Trigger 识别,这样我们就可以依据扩展名来显示不合的结构布局,并节制元素的隐现,比如选中视频文件可以播放视频预览,而选中一个通俗文件只会显示一种替代图标。

3 依然是自定义类,只有实现 INotifyPropertyChanged 接口的类型才可以供给变动看护,以掩护双向实时绑定。

WPF是个大年夜舞台,我们可以做的还有很多。

您可能还会对下面的文章感兴趣: