为什么当我在WP7中转换颜色资源时抛出一个Arg_ InvalidCastException

本文关键字:一个 InvalidCastException Arg WP7 资源 颜色 转换 为什么 | 更新日期: 2023-09-27 18:14:45

我在Windows Phone 7.5及以上的项目目标上工作。我在App.xaml中定义了一个颜色资源,并将其用作全局资源。当我在代码后面使用它时,它会给我一个错误。

XAML中的资源:

<SolidColorBrush x:Key="BackgroundColor" Color="#FFF6F6F6"/>
c#中的调用
    private void BuildApplicationBar()
    {
        ApplicationBar = new ApplicationBar();
        ApplicationBar.BackgroundColor = (Color)Application.Current.Resources["BackgroundColor"];
    }

当我尝试转换资源时发生错误:(Arg_InvalidCastException)

参数:调试资源字符串不可用。通常是关键论证提供了足够的信息来诊断问题。看到文件= 4.0.50829.0& http://go.microsoft.com/fwlink/?linkid=106663&版本= mscorlib.dll&关键= Arg_InvalidCastException

为什么以及如何解决它,我确实检查了AppBar的bgcolor的类型是一个Color,当我做cast时怎么会发生这种情况?

为什么当我在WP7中转换颜色资源时抛出一个Arg_ InvalidCastException

将资源声明为Brush,但将其强制转换为Color。它不可能工作。

试试这个:

private void BuildApplicationBar()
{
    ApplicationBar = new ApplicationBar();
    ApplicationBar.BackgroundColor = ((SolidColorBrush)Application.Current.Resources["BackgroundColor"]).Color;
}
相关文章: