Treeview失去焦点高亮度显示

(西安羚羊网络科技有限公司——技术文档)

Winform中的TreeView空间失去焦点后无法突出显示,即就是将HideSelection设置为fals 但背景仍然是灰色,看起来不明显!

解决方法:

       
将TreeView的HideSelection属性设置为False,DrawMode属性设置为OwnerDrawText


将TreeView的DrawNode事件写为:


       private void TreeView1_DrawNode(object sender, DrawTreeNodeEventArgs e)
         {
            e.Graphics.FillRectangle(Brushes.White, e.Node.Bounds);
            if (e.State == TreeNodeStates.Selected)//做判断
            {
                e.Graphics.FillRectangle(Brushes.CornflowerBlue, new Rectangle(e.Node.Bounds.Left, e.Node.Bounds.Top, e.Node.Bounds.Width,     e.Node.Bounds.Height));//背景色为蓝色
                e.Graphics.DrawString(e.Node.Text, tvFunctionInfo.Font, Brushes.White, Rectangle.Inflate(e.Bounds, 2, 0)); //字体为白色
            }
            else
            {
                e.DrawDefault = true;
            }


        }

可以通过在`TreeView`的`Style`中设置`ItemContainerStyle`来实现失去焦点后修改选中行背景颜色。具体步骤如下: 1. 在`TreeView`的`Style`中添加`ItemContainerStyle`: ```xml <Style TargetType="{x:Type TreeViewItem}"> <Style.Triggers> <Trigger Property="IsSelected" Value="True"> <Setter Property="Background" Value="LightBlue"/> <Setter Property="Foreground" Value="White"/> </Trigger> <Trigger Property="IsSelected" Value="False"> <Setter Property="Background" Value="Transparent"/> <Setter Property="Foreground" Value="Black"/> </Trigger> <Trigger Property="IsMouseOver" Value="True"> <Setter Property="Background" Value="LightGray"/> <Setter Property="Foreground" Value="Black"/> </Trigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="IsSelected" Value="True"/> <Condition Property="IsFocused" Value="False"/> </MultiTrigger.Conditions> <Setter Property="Background" Value="Gray"/> </MultiTrigger> </Style.Triggers> </Style> ``` 2. 在`Style`中的`ItemContainerStyle`中添加`MultiTrigger`,当`IsSelected`为`True`且`IsFocused`为`False`时设置背景颜色。 ```xml <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="IsSelected" Value="True"/> <Condition Property="IsFocused" Value="False"/> </MultiTrigger.Conditions> <Setter Property="Background" Value="Gray"/> </MultiTrigger> ``` 这段代码的含义是,当`TreeViewItem`被选中并且失去焦点时,设置背景颜色为灰色。 注意:上面的代码中的颜色值只是示例,可以根据需要进行修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值