0

我在 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]

参数:调试资源字符串不可用。通常,关键和论据提供了足够的信息来诊断问题。请参阅 http://go.microsoft.com/fwlink/?linkid=106663&Version=4.0.50829.0&File=mscorlib.dll&Key=Arg_InvalidCastException

为什么以及如何解决它,我确实检查了 AppBar 的 bgcolor 的类型是 Color,当我进行演员表时怎么会发生这种情况?

4

1 回答 1

1

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

试试这个:

private void BuildApplicationBar()
{
    ApplicationBar = new ApplicationBar();
    ApplicationBar.BackgroundColor = ((SolidColorBrush)Application.Current.Resources["BackgroundColor"]).Color;
}
于 2013-05-22T13:21:03.523 回答