2012-11-05 34 views
0

我正在開發一個應用程序,其中我必須將其中一個GradientStops設置爲PhoneAccentColor StaticResource,並且我必須在代碼(即C#)中執行此操作。StaticResource PhoneAccentBrush as GradientStop

這是我已經嘗試過:

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'並且應用程序崩潰。

我在這裏做錯了什麼?

回答

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); 
+0

這樣做。謝謝。 :) –

相關問題