【发布时间】:2016-05-17 14:10:07
【问题描述】:
我有一个 TreeView 控件,它包含多个元素、节点。有没有办法根据某些条件更改所选项目的前景色或背景色(默认情况下,蓝色背景和白色前景应用于所选元素)。就我而言,我将检索一个对象并检查其“NeedSync”属性。如果它的值为真,我希望元素 例如,具有绿色背景。如果它是假的,我希望背景是红色的。
我查看了其他类似的线程,但要求使用树视图的 _DrawItem 方法更改未选择元素的颜色。在 WPF 中,这应该可以通过更改控件样式和指定触发器来实现。
在 Windows 窗体中呢?
编辑:我只需要更改所选元素的字体颜色或背景色,其他一切都应该保持不变。有没有办法获取所选节点的默认样式源代码?实现 drawNode 方法会移除可折叠图标、边距和其他一些东西。
【问题讨论】:
-
是的,你必须使用 DrawNode 方法。将 DrawMode 属性设置为 OwnerDrawText。
-
是的,您需要对
DrawNode事件进行编码。在那里你可以检查e.State.HasFlag(TreeNodeStates.Selected)