博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
wpf ListView DataTemplate方式的鼠标悬停和选中更改背景色
阅读量:4608 次
发布时间:2019-06-09

本文共 4216 字,大约阅读时间需要 14 分钟。

         今天使用wpf技术弄一个ListView的时候,由于需求需要,需要ListView显示不同的数据模板,很自然的使用了DataTemplate方式来定义多个数据模板,并在ListView中使用ItemTemplateSelector绑定模板。添加上数据源显示后数据显示根据数据的类型不同显示了不同的数据模板,这很符合我的需求,但是当我把鼠标悬停到ListView和选中一行数据时,惊讶的发现ListView还是显示自带的背景色,简直丑哭了,不能忍,我要自定义鼠标悬停和选中的背景色。

       通过一上午的忙碌才发现,原来ListView里是由多个ListViewItem包含DataTemplate方式来显示数据的,因此我们需要先设置ListViewItem的BorderThickness和Padding大小为0,再接着DataTemplate设置为背景色。实现代码如下:

   

1 
2 3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
资源数据模板文件
1 public class MessageItemDataTemplateSelector : DataTemplateSelector 2     { 3         public override DataTemplate SelectTemplate(object item, DependencyObject container) 4         { 5             var tempItem = item as ChatMessage; 6  7             if (tempItem.MessageType == MessageType.Incoming) 8             { 9                 return App.Current.Resources["MessageDataTemplateLeft"] as DataTemplate;10             }11             else12             {13                 return App.Current.Resources["MessageDataTemplateRight"] as DataTemplate;14             }15         }16     }
模板选择器代码
前台代码

由上面设置即可设置鼠标悬停和选择样式,我先设置为白色背景了。根据自己需求设置背景色。

同时注意:在使用数据模板样式选择器时,不能设置ItemContainerStyle的属性值,如果设置了该值,那么数据模板样式选择器会失去作用。

即在ItemContainerStyle里不能再次设置Template不然会被覆盖掉DataTemplate,导致数据没有显示。

转载于:https://www.cnblogs.com/zuimengaitianya/p/6066180.html

你可能感兴趣的文章
Movidius软件手册阅读 2017-09-04
查看>>
ytu 1910:字符统计(水题)
查看>>
201671030110 姜佳宇 实验三作业互评与改进
查看>>
mysql-5.6.15 开启二进制文件
查看>>
python的沙盒环境--virtualenv
查看>>
软件自动化测试——入门、进阶与实战
查看>>
BZOJ1878 [SDOI2009]HH的项链 树状数组 或 莫队
查看>>
BZOJ3675 [Apio2014]序列分割 动态规划 斜率优化
查看>>
Django extend(继承)模板标签
查看>>
2016.10.24 继续学习
查看>>
产品功能对标 - 服务授权管理
查看>>
各地IT薪资待遇讨论
查看>>
splay入门
查看>>
带CookieContainer进行post
查看>>
C语言学习笔记--字符串
查看>>
CSS-上下文选择器
查看>>
ionic repeat 重复最后一个时要执行某个函数
查看>>
1.初识代码审计-基础
查看>>
APC注入
查看>>
No enclosing instance of type Hello is accessible
查看>>