Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何获得Windows 10的强调色?_C#_Xaml_Uwp_Uwp Xaml - Fatal编程技术网

C# 如何获得Windows 10的强调色?

C# 如何获得Windows 10的强调色?,c#,xaml,uwp,uwp-xaml,C#,Xaml,Uwp,Uwp Xaml,我正在寻找一种方法来获取windows 10根据背景图像自动选择的颜色,如下所示 我试着搜索,结果发现 var color = (Color)this.Resources["SystemAccentColor"]; 及 但两者都是例外 System.Exception HResult=0x8000FFFF Message=Catastrophic failure (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED)) Source=

我正在寻找一种方法来获取windows 10根据背景图像自动选择的颜色,如下所示

我试着搜索,结果发现

var color = (Color)this.Resources["SystemAccentColor"];

但两者都是例外

System.Exception
  HResult=0x8000FFFF
  Message=Catastrophic failure (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED))
  Source=<Cannot evaluate the exception source>
  StackTrace:
<Cannot evaluate the exception stack trace>

System.Exception
HResult=0x8000FFFF
消息=灾难性故障(来自HRESULT的异常:0x8000FFFF(E_意外))
来源=
堆栈跟踪:

在此代码
应用程序.Current.Resources[“SystemAccentColor”]
您必须将其转换为可用的颜色格式,以下是解决方案

        var color = Application.Current.Resources["SystemAccentColor"];
        btnTest.Background = GetColorFromHex(color.ToString());
这是转换函数

public static SolidColorBrush GetColorFromHex(string hexaColor)
        {
            return new SolidColorBrush(
                Color.FromArgb(
                  Convert.ToByte(hexaColor.Substring(1, 2), 16),
                    Convert.ToByte(hexaColor.Substring(3, 2), 16),
                    Convert.ToByte(hexaColor.Substring(5, 2), 16),
                    Convert.ToByte(hexaColor.Substring(7, 2), 16)
                )
            );
        }

希望这能有所帮助,

我强烈建议在您在stackoverflow发布的问题中包含实际的异常类型+消息。这表明您在诊断问题上付出了一些努力,避免了忽略一些明显的问题。您能同时发布内部异常和堆栈跟踪吗?@Erno de Weerd我是一个非常新手的程序员,不确定什么是内部异常,但我现在正在添加全部细节。谢谢,但是您的示例中的第一行代码抛出了一个异常,如上所述。它对我来说很好,您能否显示您得到的错误。结果表明,异常是由我放置代码的位置引起的。现在我把它放在一个好地方,它确实对我有用。谢谢,很抱歉这个愚蠢的问题。如果启用了“自动从我的背景中选择强调色”,则无法获得正确的颜色。
public static SolidColorBrush GetColorFromHex(string hexaColor)
        {
            return new SolidColorBrush(
                Color.FromArgb(
                  Convert.ToByte(hexaColor.Substring(1, 2), 16),
                    Convert.ToByte(hexaColor.Substring(3, 2), 16),
                    Convert.ToByte(hexaColor.Substring(5, 2), 16),
                    Convert.ToByte(hexaColor.Substring(7, 2), 16)
                )
            );
        }