Как я могу сделать градиент заливки для полигона прямым?

#silverlight #xaml #gradient #polygon #shapes

#silverlight #xaml #градиент #полигон #фигуры

Вопрос:

В настоящее время я пытаюсь нарисовать полигон, а затем заполнить его градиентом. Проблема в том, что градиент использует верхнюю часть фигуры как вверх, поэтому он наклоняется. Вот некоторый xaml, который создаст то, о чем я говорю.

    <Polygon Points="0,20 0,20 100,0 100,20">
        <Polygon.Fill>
            <LinearGradientBrush EndPoint="1,0" StartPoint="0,1">
                <GradientStop Color="White" Offset="0" />
                <GradientStop Color="White" Offset="0.5" />
                <GradientStop Color="Black" Offset="0.5" />
            </LinearGradientBrush>
        </Polygon.Fill>
    </Polygon>
  

Этот код является хорошим примером, потому что он разделит цвета на отметке 50% с белым слева и черным справа. Вы можете видеть, что линия среза наклонена к вершине треугольника. Вот также картинка на случай, если вы не можете попробовать код.

Треугольник

Есть ли способ сделать так, чтобы это был вертикальный срез, а не наклонный?

Ответ №1:

Вам нужно будет изменить начальную и конечную точки:

 <... StartPoint="0,0.5" EndPoint="1,0.5" >
  

Приведенное выше переводится как «начинать в середине слева, заканчивать в середине справа».

Прямо сейчас ваши точки говорят «начинаются в правом верхнем углу и заканчиваются в левом нижнем углу».

Поэтому нам, вероятно, следует поменять его местами, вот так:

 <... StartPoint="1,0.5" EndPoint="0,0.5" >
  

Для справки и даже других примеров, демонстрирующих ваши требования, смотрите здесь.

Комментарии:

1. Спасибо, я идиот. Обычно я не устанавливаю начало и конец градиента вручную. Здесь я думаю, что это как-то связано с треугольником, и я совершенно упускаю из виду, что это может быть градиент.