Остановить повторение LinearGradientBrush - PullRequest
1 голос
/ 12 сентября 2009

Я пытаюсь выяснить, как остановить LinearGradientBrush для повторения вместе с формой, которую я рисую. Так, например, я создал градиент с высотой, равной 50, но затем я рисую прямоугольник с высотой, равной 150. В этом случае градиент повторится три раза. Но я хотел бы нарисовать только первый градиент и ничего не рисовать для остальной части прямоугольника. Кажется, GradientBrush в WPF поддерживает SpreadMethod (http://msdn.microsoft.com/en-us/library/system.windows.media.gradientbrush.spreadmethod.aspx) для этой цели, но существует ли что-то и для WinForms?

1 Ответ

2 голосов
/ 17 ноября 2010

Пол, я думаю, что самым простым способом может быть создание заливки таким же образом, но только рисование с использованием прямоугольника размером 50 пикселей. Если вам нужно заполнить остальные 100 пикселей определенным цветом, сначала выполните сплошную заливку этим цветом.

В качестве альтернативы вы можете попытаться установить смешение в градиентной заливке (LinearGradientbrush :: SetBlend), но для достижения того же эффекта требуется много усилий.

...