none
C#有没有办法取系统配色

    问题

  • 有没有办法取得win8以上系统的主题色,,就是在metro设置里面选择的那个可以根据桌面图片自动改变的标题栏颜色
    2016年7月10日 9:07

答案

  • 你好,

    根据下面的英文博客,我们知道Windows 8 没有 doesn’t 提供开发访问系统主题色的函数, 不过下面的文章提供了一个解决方案是用 P/Invoke 的方法的取系统主题色, 你可以参考一下。

    https://www.quppa.net/blog/2013/01/02/retrieving-windows-8-theme-colours/

    Best regards,

    Cole Wu


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2016年7月21日 6:39
    版主
  • 已经找到方案了,用这个函数可以取出主题色:
    [DllImport("Dwmapi.dll")]
    private static extern int DwmGetColorizationColor(ref int pcrColorization, ref bool pfOpaqueBlend);

    然后系统主题更改后发送这个消息:
    int DWMCOLORIZATIONCOLORCHANGED = 0x0320;

    OK,问题已经处理


    • 已标记为答案 WileyChia 2016年9月23日 13:04
    • 已编辑 WileyChia 2016年9月23日 13:06
    2016年9月23日 13:04

全部回复