我正在开发一个应用程序,其中我必须将其中一个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'并且应用程序崩溃。
我在这里做错了什么?
答案 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);