C#console获得Windows 10 Accent Color

时间:2018-06-13 14:58:00

标签: c# windows-10 console-application .net-core-2.0

.Net Core 2.X中是否有办法在控制台应用程序中读取所选的Windows 10重音颜色。

我发现的大多数解决方案都是UWP或WPF应用程序。

我告诉你的颜色我的意思是,这是一张照片:

2 个答案:

答案 0 :(得分:2)

HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ DWM \ - 存储所有装饰颜色。因此,如果推出了具有HKEY_CURRENT_USER权限的应用,您可以阅读或更改" AccentColor "属性(以及目录中的其他属性)或您自己更改十六进制表示法的颜色代码。

要访问Windows注册表,您需要安装包: https://www.nuget.org/packages/Microsoft.Windows.Compatibility/

此处有关包裹的信息: https://docs.microsoft.com/en-us/dotnet/core/porting/windows-compat-pack/

答案 1 :(得分:0)

从.NET Core 3.0开始,还可以借助Microsoft.Windows.SDK.Contracts软件包从非UWP应用中调用UWP API。

因此,我们可以使用UWP API通过以下方式从.NET Core控制台应用程序获取强调色:

var uiSettings = new UISettings();
var accentColor = uiSettings.GetColorValue(UIColorType.Accent);

返回的颜色为Windows.UI.Color类型,但可以轻松转换为例如System.Drawing.Color

Color.FromArgb(accentColor.A, accentColor.R, accentColor.G, accentColor.B);