C# StaticResource将笔刷设置为GradientStop
我正在开发一个应用程序,其中我必须将其中一个GradientStops设置为PhoneAccentColor StaticResource,我必须在代码中这样做(即C#) 以下是我已经尝试过的:C# StaticResource将笔刷设置为GradientStop,c#,silverlight,windows-phone-7,xaml,C#,Silverlight,Windows Phone 7,Xaml,我正在开发一个应用程序,其中我必须将其中一个GradientStops设置为PhoneAccentColor StaticResource,我必须在代码中这样做(即C#) 以下是我已经尝试过的: GradientStop accentGS = new GradientStop(); accentGS.Color = (System.Windows.Media.Color)App.Current.Resources["PhoneAccentBrush"]; accentGS.Offset = .5
GradientStop accentGS = new GradientStop();
accentGS.Color = (System.Windows.Media.Color)App.Current.Resources["PhoneAccentBrush"];
accentGS.Offset = .5;
lgbBlack.GradientStops.Add(accentGS);
在这里,lgbBlack是LinearGradientBrush,我将向其中添加此渐变停止
这不会引发任何错误,但当我运行应用程序时,会引发“System.InvalidCastException”,应用程序会崩溃
我在这里做错了什么?问题是
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);