C# 如何获得Windows 10的强调色?
我正在寻找一种方法来获取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=
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)
)
);
}