2012-02-17 2 views
0

Я пытаюсь заполнить эллипс линейной переменной градиента в Silverlight (в файле .cs). Вот что я пробовал ...Заполнить эллипс в Silverlight (в файле .cs)

 newEllipse.Fill = ballBG; 

Однако это удаляет заливку, которая уже находится на эллипсе. Я также попытался ...

 newEllipse.Background = ballBG; 

Однако, он приходит с этой ошибкой ... «System.Windows.Shapes.Ellipse» не содержит определение для «Фона» и без расширения методы «Фона» принимающему можно найти первый аргумент типа «System.Windows.Shapes.Ellipse» (вам не хватает директивы использования или ссылки на сборку?)

Любые советы о том, как это сделать?

+1

"Тем не менее, это снимает заливку, которая уже на эллипсе" Какое поведение Вы ожидаете? –

+0

На 'Ellipse' нет свойства' Background'. Кроме того, какой тип 'ballBG'? – ken2k

+0

LinearGradientBrush ballBG = новый LinearGradientBrush(); –

ответ

0

При наличии в SolidColorBrush:

Ellipse redEllipse = new Ellipse(); 
redEllipse.Height = 100; 
redEllipse.Width = 300;   
SolidColorBrush redBrush = new SolidColorBrush(); 
redBrush.Color = Colors.Red; 
SolidColorBrush blackBrush = new SolidColorBrush(); 
blackBrush.Color = Colors.Black; 
redEllipse.StrokeThickness = 4; 
redEllipse.Stroke = blackBrush; 

redEllipse.Fill = redBrush; 

UPDATE Для вашего LinearGradientBrush я нашел это:

LinearGradientBrush myBrush=new LinearGradientBrush(); 

myBrush.SetValue(LinearGradientBrush.StartPointProperty, ("0,0")); 
myBrush.GradientStops(1).Offset = 0.5; 

myBrush.SetValue(LinearGradientBrush.EndPointProperty, ("1,1")); 
myBrush.GradientStops(0).Color = Colors.Red; 

myBrush.GradientStops(1).Color = Colors.Green; 

newEllipse.Fill = myBrush; 
+0

спасибо за совет, во всяком случае, сделать то же самое с LinearGradientBrush? –

+0

понял это! Спасибо! :) –

Смежные вопросы