gpt4 book ai didi

c# - 如何获得 Windows 7 aero 选择颜色?

转载 作者:太空宇宙 更新时间:2023-11-03 13:49:44 28 4
gpt4 key购买 nike

如何检索与当前 Aero 风格相关的系统颜色?我特别需要选择渐变中使用的颜色。 SystemColors 结构不包含所需的颜色。

Aero colors

或者:如何使用 WinAPI 在特定 Canvas (图形对象)上绘制选择?

最佳答案

好的,所以最初问题的答案是:无法确定我要求的具体颜色。它由操作系统提供的内部主题例程评估。

幸运的是,有一种方法可以让操作系统绘制一个主题控件,即所谓的部分。 .NET 提供了两个用于绘制 UI 的类:

我要求的选区可以通过以下代码绘制:

// Graphics g = ...
VisualStyleRenderer selectionRenderer = new VisualStyleRenderer(VisualStyleElement.TreeView.Item.Selected);
selectionRenderer.DrawBackground(g, someRectangle);

不幸的是,默认窗口主题不支持 TreeView.Item.SelectedListView.Item.Selected。但是,可以通过 p/invoke 使用 WinAPI 将主题切换到资源管理器:

// C++
SetWindowTheme(hwnd, L"Explorer", nullptr);

然后通过几个 UXTheme.h 例程 P/invoke 他的方式,效果很好。

关于c# - 如何获得 Windows 7 aero 选择颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14039243/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com