StaticResource PhoneAccentBrush为GradientStop

时间:2012-11-05 14:32:46

标签: c# silverlight windows-phone-7 xaml

我正在开发一个应用程序,其中我必须将其中一个GradientStop设置为PhoneAccentColor StaticResource,我必须在代码中执行此操作(即C#)。

这是我已经尝试过的:

GradientStop accentGS = new GradientStop();
accentGS.Color = (System.Windows.Media.Color)App.Current.Resources["PhoneAccentBrush"];
accentGS.Offset = .5;
lgbBlack.GradientStops.Add(accentGS);

这里,lgbBlack是我添加此GradientStop的LinearGradientBrush。

这不会抛出任何错误,但是当我运行应用程序时,会抛出'System.InvalidCastException'并且应用程序崩溃。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

问题是PhoneAccentBrush资源是SolidColorBrush,而不是Color
该代码应该有效:

GradientStop accentGS = new GradientStop();
SolidColorBrush c = (SolidColorBrush)App.Current.Resources["PhoneAccentBrush"];
accentGS.Color = c.Color;
accentGS.Offset = .5;
lgbBlack.GradientStops.Add(accentGS);