博客
关于我
移除 DevExpress 的 XtraForm 标题文字阴影
阅读量:435 次
发布时间:2019-03-06

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

问题

在使用 DevExpress 开发 WinForm 程序时,我是使用的默认皮肤进行开发。但客户要求标题栏背景色改为蓝色,标题文字颜色改为白色。

改颜色比较简单,参考了 的说明,通过获取皮肤更改 BackColorForeColor 就可以实现。不过更改之后,发现在低分屏下面,标题文字出现模糊的情况。

原因

初步猜想应该是文字阴影的问题,但搜索了大部分资料没有找到解决方案,最后在 的这篇文章看到了自定义 FormPainter 。起初我认为是重载 DrawText() 解决,不过没有找到相关的参数,之后发现它有一个 DrawTextShadow() 方法,应该就是它了。

解决

解决方法很简单,就是重写 DrawTextShadow() 方法,将其作为一个空方法就行了,不做任何阴影处理。

public class ReplaceFontFormPainter : FormPainter{	public ReplaceFontFormPainter(Control owner, ISkinProvider provider) : base(owner, provider)	{			}		// 不再绘制标题文字阴影。	protected override void DrawTextShadow(GraphicsCache cache, AppearanceObject appearance, Rectangle bounds)	{			}}

来到你需要更改的窗体,重载窗体的 CreateFormBorderPainter() 方法,使用你自己创建的 FormPainter

public partial class MainForm : XtraForm{	protected override FormPainter CreateFormBorderPainter() => new ReplaceFontFormPainter(this, LookAndFeel);}

最后的效果:

转载地址:http://czryz.baihongyu.com/

你可能感兴趣的文章
windows环境下安装zookeeper(仅本地使用)
查看>>
Pytest学习(二十)- allure之@allure.step()、allure.attach的详细使用
查看>>
Docker学习(十三)- docker rm 命令详解
查看>>
解决Eclipse左键无法查看maven第三方包的源代码,多图亲测可用【转】
查看>>
selnium远程机上传图片遇到的坑
查看>>
Kali安装Docker
查看>>
Java 持久化操作之 --XML
查看>>
程序员如何提高工作效率
查看>>
(转)在ASP.NET 中实现单点登录(利用Cache, 将用户信息保存在服务器缓存中)
查看>>
RabbitMQ核心概念篇
查看>>
权限管理系统系列之序言
查看>>
Java程序员学习Go指南(终)
查看>>
Go语言实现布谷鸟过滤器
查看>>
Mysql多数据库备份
查看>>
微信小程序setData子元素
查看>>
github: Permission denied (publickey). 问题解决方法
查看>>
Docker常用操作
查看>>
查看已经开放的端口,查看和清理tomcat日志文件
查看>>
ORA-00600: internal error code, arguments: [kole_t2u], [34]
查看>>
TX锁处理
查看>>