获取窗口的强调色

本文关键字:窗口 获取 | 更新日期: 2023-09-27 18:17:08

如何从窗口获得强调色?因为我想让ToolStrip的颜色与window的强调色相同
我在谷歌上搜索了一下,所有的都是一些Windows Phone的东西,或者不能用。
有人能帮帮我吗?

获取窗口的强调色

您可以使用以下代码:

internal static class NativeMethods
{
    [DllImport("dwmapi.dll", EntryPoint="#127")]
    internal static extern void DwmGetColorizationParameters(ref DWMCOLORIZATIONcolors colors);
}
public struct DWMCOLORIZATIONcolors
{
    public uint ColorizationColor, 
        ColorizationAfterglow, 
        ColorizationColorBalance, 
        ColorizationAfterglowBalance, 
        ColorizationBlurBalance, 
        ColorizationGlassReflectionIntensity, 
        ColorizationOpaqueBlend;
}
private static Color GetWindowColorizationColor(bool opaque)
{
    var colors = NativeMethods.DwmGetColorizationParameters();
    return Color.FromArgb((byte)(opaque ? 255 : colors.ColorizationColor >> 24),
        (byte)(colors.ColorizationColor >> 16), 
        (byte)(colors.ColorizationColor >> 8), 
        (byte)colors.ColorizationColor);
}

如果你也想在你的程序运行时更新颜色,请参阅这篇文章!