0

我正在开发一个应用程序,其中我必须将 GradientStops 之一设置为 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”并且应用程序崩溃。

我在这里做错了什么?

4

1 回答 1

1

问题是PhoneAccentBrush资源是 a SolidColorBrush,而不是 a Color
该代码应该可以工作:

GradientStop accentGS = new GradientStop();
SolidColorBrush c = (SolidColorBrush)App.Current.Resources["PhoneAccentBrush"];
accentGS.Color = c.Color;
accentGS.Offset = .5;
lgbBlack.GradientStops.Add(accentGS);
于 2012-11-05T14:43:16.883 回答