DevExpress的TreeList默认是没有树状线的,修改TreeLineStyle属性无效,这对于Tree并不好看。

解决方案一

官方解释说对于DevExpress的标准主题是不支持TreeList有TreeLine的(不是技术问题,是设计理念不同),如DevExpress Style, DevExpress Dark Style、Office 2013、Office 2010, Visual Studio 2013, VS2010, Seven Classic等,默认如下:

而主题皮肤和其他皮肤是支持的。所以使用非标准皮肤就可以实现TreeLine的支持

关于三类皮肤的划分如下:

解决方案二

很多时候,我们都会使用标准皮肤,只有使用代码强制这个属性,修改代码如下:

Skin skin = GridSkins.GetSkin(treeList1.LookAndFeel);
skin.Properties[GridSkins.OptShowTreeLine] = true;

效果如下:

虽然是实现了,但看起来还是怪怪的,领导还想要自行车。

最新款自动车

由于标准皮肤不支持+/-号(plus/minus),所以官方给出的解决方案:一是使用其他非标准皮肤,二是自定义绘制节点按键事件(CustomDrawNodeButton),代码如下:

private void TreeList1_CustomDrawNodeButton(object sender, CustomDrawNodeButtonEventArgs e)
{
//1、矩形
Rectangle rect = Rectangle.Inflate(e.Bounds, 0, -2);
//矩形背景
Brush backBrush = e.Cache.GetGradientBrush(rect, BackColor, BackColor, LinearGradientMode.ForwardDiagonal);
e.Cache.FillRectangle(backBrush, rect);
//矩形边框
Pen pen = e.Cache.GetPen(Color.Gray);
//pen.DashStyle = DashStyle.Dot;
e.Cache.DrawRectangle(pen, rect);
//2、显示的文字
string displayCharacter = e.Expanded ? "-" : "+";
//文字格式
StringFormat outCharacterFormat = e.Appearance.GetStringFormat();
outCharacterFormat.Alignment = StringAlignment.Center;
outCharacterFormat.LineAlignment = StringAlignment.Center; //绘制文字
e.Appearance.FontSizeDelta = -2;
e.Appearance.FontStyleDelta = FontStyle.Bold;
e.Cache.DrawString(displayCharacter, e.Appearance.Font,e.Cache.GetSolidBrush(ForeColor), rect, outCharacterFormat); //禁止默认绘画
e.Handled = true;
}

参考

https://www.devexpress.com/Support/Center/Question/Details/Q380748/force-treelines-on-treelist

https://blog.csdn.net/u010613052/article/details/79752671

https://documentation.devexpress.com/WindowsForms/DevExpress.XtraTreeList.TreeList.CustomDrawNodeButton.event

https://www.devexpress.com/Support/Center/Question/Details/T238989/how-to-change-an-expand-button-image

DevExpress中TreeList树样式调整的更多相关文章

  1. DevExpress中 TreeList控件的常规配置

    //以下为TreeList控件样式相关设置 this.treelist_SystemCfg.BackColor = Color.Transparent; this.treelist_SystemCfg ...

  2. devexpress中gridcontrol 一些样式改变

    改变footer为扁平化效果 整个footer背景色CustomDrawFootere.Appearance.BackColor = Color.Transparent; e.Appearance.D ...

  3. 在Winform开发框架中使用DevExpress的TreeList和TreeListLookupEdit控件

    DevExpress提供的树形列表控件TreeList和树形下拉列表控件TreeListLookupEdit都是非常强大的一个控件,它和我们传统Winform的TreeView控件使用上有所不同,我一 ...

  4. DevExpress的TreeList怎样给树节点设置图标

    场景 DevExpress的TreeList怎样设置数据源使其显示成单列树形结构: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/ ...

  5. Winforn中DevExpress的TreeList中显示某路径下的所有目录和文件(附源码下载)

    场景 Winform中DevExpress的TreeList的入门使用教程(附源码下载): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...

  6. Winform中双击DevExpress的TreeList的树形节点怎样获取当前节点

    场景 DevExpress的TreeList怎样设置数据源,从实例入手: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10254 ...

  7. DevExpress的TreeList实现显示本地文件目录并自定义右键实现删除与重命名文件

    场景 使用DevExpress的TreeList显示本磁盘下文件目录并在树节点上右键实现删除与添加文件. 效果 自定义右键效果 实现 首先在包含Treelist的窗体的load方法中对treelist ...

  8. DevExpress的TreeList怎样设置数据源使其显示成单列树形结构

    场景 Winform控件-DevExpress18下载安装注册以及在VS中使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1 ...

  9. DevExpress的TreeList的常用属性设置以及常用事件

    场景 Winform控件-DevExpress18下载安装注册以及在VS中使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1 ...

随机推荐

  1. JavaScript设计模式基础(一)

    模式的起源 模式 起源于建筑学.20世纪70年代,哈佛大学建筑学博士Christopher Alexander和他的团队花大约20年,来研究为解决同一个问题而设计出的不同建筑结构,从中发现那些高质量设 ...

  2. ASP.NET MVC中使用MvcPager异步分页+在分页中复选框下一页上一页也保持选中

    ASP.NET MVC 分页使用的是作者杨涛的MvcPager分页控件  地址:http://www.webdiyer.com/mvcpager/demos/ajaxpaging/ 这个分页控件在里面 ...

  3. 向QGIS项目组提交了一份建议

    geopackage中的数据无法重命名的问题,这很怪异啊

  4. vue.js 本地解决跨域

    1.config/index.js下添加proxyTable dev: { // Paths assetsSubDirectory: 'static', assetsPublicPath: '/', ...

  5. 团队项目之Scrum5

    小组:BLACK PANDA 时间:2019.11.25   每天举行站立式会议 提供当天站立式会议照片一张 2 昨天已完成的工作 2 实现文章展示页面 完善后台的编辑功能接口 今天计划完成的工作 2 ...

  6. C# Excel 读取导入数据库

    使用Aspose.Cells组件. 表格第一行为表头合并,第二行为数据名称,从第三行开始数据. if (xtraOpenFileDialog1.ShowDialog() == DialogResult ...

  7. BIM工程信息管理系统-EF实体框架数据操作基类

    EF实体框架数据操作基类主要是规范增.改.查.分页.Lambda表达式条件处理,以及异步操作等特性,这样能够尽可能的符合基类这个特殊类的定义,实现功能接口的最大化重用和统一. 1.程序代码 /// & ...

  8. MySQL数据库~~~~~存储引擎

    1. InnoDB InnoDB引擎特点: 1.支持事务:支持4个事务隔离界别,支持多版本读. 2.行级锁定(更新时一般是锁定当前行):通过索引实现,全表扫描仍然会是表锁,注意间隙锁的影响. 3.读写 ...

  9. MySQL数据库:子查询的应用

    子查询 子查询是一种常用计算机语言SELECT-SQL语言中嵌套查询下层的程序模块.当一个查询是另一个查询的条件时,称之为子查询. # 子查询的用法 # 在字段 select (select cNam ...

  10. Attention 和self-attention

    1.Attention 最先出自于Bengio团队一篇论文:NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE ...