0

GradientStopsの1つをPhoneAccentColorStaticResourceとして設定する必要があるアプリケーションを開発しています。これは、コード(つまり、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リソースがでありSolidColorBrush、ではないこと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 に答える