加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

更改单个应用程序的系统颜色(Windows,.NET)

发布时间:2020-12-14 01:51:18 所属栏目:Windows 来源:网络整理
导读:我知道我一般应该避免弄乱这样的系统设置,但我的应用程序已经使用非标准颜色,我对此没有影响.我希望能够在某些地方添加标准.NET控件,但它们的颜色不匹配.我想有一个黑客可以替换这个应用程序的系统颜色.另一个需要注意的重要事项是它是一个.NET应用程序. 到
我知道我一般应该避免弄乱这样的系统设置,但我的应用程序已经使用非标准颜色,我对此没有影响.我希望能够在某些地方添加标准.NET控件,但它们的颜色不匹配.我想有一个黑客可以替换这个应用程序的系统颜色.另一个需要注意的重要事项是它是一个.NET应用程序.

到目前为止我的(不完整)想法是:

>要创建一个代替GetSysColor的代理User32.dll库,但它将非常繁琐(731函数被重定向,1被替换)并且我不知道如何强制我的应用程序使用该特定副本.
>以某种方式拦截对GetSysColors的调用(不幸的是它在CLR的某个地方我认为).
>以某种方式修改.NET类SystemColors(在内存中?可能吗?).

你有什么想法,最好(和完整)的方法是什么?

解决方法

I would like to be able to add standard .NET controls in some places,but their colors do not match. I would like to have a hack that would replace system colors for this one application.

这就像用大锤敲钉子一样.

您可以做的是从您想要使用的每个库存控件继承一个新控件,而不是在系统内部弄清楚颜色.因此,您可以从库存TextBox控件继承而不是纯文本框来创建自己的ThemedTextBox.您设置此新控件以默认使用应用程序的颜色方案,并且因为它仍然是TextBox,就继承结构而言,您可以在任何使用普通文本框的地方使用它,包括在winforms设计器中.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读