继续聊WPF——用Blend自定义Listview控件的列表头

摘要:
在Blend中右击ListView控件,从样式和模板相关的菜单项中,我们没找到与列表头有关的项。切换到XAML视图,在Window的资源中增加一个样式,类型指向GridViewColumnHeader的样式:然后,切换回设计视图,展开“资源”面板。点击进入编辑资源,哈哈,这回就好办事了,先改改它的背景吧,系统默认主题实在太难看了。选择名为“HightlightBorder”的Border控件,并改变它的外观。用同样的方法,完成IsMouseOver的触发器。好了,完成了,现在运行一下,看看现在的ListView是不是比默认的漂亮多了。

在Blend中右击ListView控件,从样式和模板相关的菜单项中,我们没找到与列表头有关的项。

继续聊WPF——用Blend自定义Listview控件的列表头第1张

然后,我们到属性面板中找GridView的ColumnHeaderContainerStyle属性,结果你发现,就算你在高级选项菜单中把它转换为本地资源,你会发现它没有反应,切换到XAML视图也没看到生成的代码。

继续聊WPF——用Blend自定义Listview控件的列表头第2张

那是不是没办法了呢?这个问题我想了想,是不是只能手写XAML呢?
其实是要手动写一点代码,但可以借助Blend的设计器来使用。
怎么操作呢?
切换到XAML视图,在Window的资源中增加一个样式,类型指向GridViewColumnHeader的样式:

然后,切换回设计视图,展开“资源”面板。

继续聊WPF——用Blend自定义Listview控件的列表头第3张

点击进入编辑资源,

哈哈,这回就好办事了,先改改它的背景吧,系统默认主题实在太难看了。

继续聊WPF——用Blend自定义Listview控件的列表头第4张

现在,好看了一些了。

继续聊WPF——用Blend自定义Listview控件的列表头第5张

但我们发现,下面的边框不太美观,这就要编辑模板了。

在“对象与时间线”面板上选择Style,右击并在弹出菜单中选择“编辑模板”->“编辑副本”,输入模板名字,确定。

继续聊WPF——用Blend自定义Listview控件的列表头第6张

继续聊WPF——用Blend自定义Listview控件的列表头第7张

选择名为“HightlightBorder”的Border控件,并改变它的外观。

继续聊WPF——用Blend自定义Listview控件的列表头第8张

继续聊WPF——用Blend自定义Listview控件的列表头第9张

接着,你就按你自己的审美观来美化,最后,我们回到Style,设置触发器。

在“触发器”面板上,点击“+属性”,并在列表中选择IsPressed。

继续聊WPF——用Blend自定义Listview控件的列表头第10张

这时候,记录已经开始,修改背景色。

继续聊WPF——用Blend自定义Listview控件的列表头第11张

用同样的方法,完成IsMouseOver的触发器。

好了,完成了,现在运行一下,看看现在的ListView是不是比默认的漂亮多了。

继续聊WPF——用Blend自定义Listview控件的列表头第12张

免责声明:文章转载自《继续聊WPF——用Blend自定义Listview控件的列表头》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇使用字段计算器对同一地类图斑自动编号(标记重复记录)py---pycharm快捷键下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Cocos Creator 组件ListView

版本:2.3.4 cocos没有List组件,所以要自己写。 从cocos的example项目中找到listView的demo来改造 新修改的ListView对比原来有以下改动: 1. 去掉了totalCount、spawnCount和bufferZone的计算,根据实际情况自动计算合适的值。 2. 增加了列表项数据的传入和刷新。例如排行榜做列表,可以传...

WPF线程

跨线程调用控件 WPF应用程序都至少有两个线程,一个用于UI绘制,其隐藏于后台,另一个用于管理UI。WPF中UI元素只能由创建该元素的线程来访问。Dispatcher类来负责线程的组织和维护。通用的解决方法是使用提供的Dispatcher.Invoke方法来调用一个Delegate,从而安全地跨线程调用。(在winform中,是Control.Invoke...

[WPF] 跨线程控制窗体UI

呼叫线程无法存取此对象 在WPF、WinForm这些应用程序中,必需是UI线程才能控制窗体。如果像是下列的范例程序一样,使用了非UI线程来控制窗体,那就会看到内容为「呼叫线程无法存取此对象,因为此对象属于另外一个线程」的InvalidOperationException例外错误。 <Window x: xmlns="http://...

WPF 中动态创建和删除控件

动态创建控件 1.容器控件.RegisterName("Name",要注册的控件) //注册控件 2.容器控件.FindName("Name") as 控件类型 //找到控件并转换成相应类型 注意:仅通过 控件.Name来设置是不能通过FindName来找到控件的,必须注册 动态删除控件1.容器控件.Children.Remove(控件) //移除控件 2...

WPF 自定义滚动条样式

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" > <Re...

在WPF中使用字体图标

一、源码描述这是一款基于WPF窗体应用程序的字体图标示例源码,该源码简单易懂使用于初学者和实战项目应用,感兴趣的朋友们可以下载看看哦。二、功能介绍1、用ICO字体代替纯文字三、实现步骤1、在网上下载Font ICO 字体字体压缩包,如:阿里巴巴矢量图标库、Font Awesome 矢量图标库2、下载到的压缩包,解压后获得图标字体文件 3、然后把字体文件夹拷...