Как преобразовать System.Drawing.Drawing2D.LinearGradientBrush в System.Windows.Media.LinearGradientBrush? - PullRequest
1 голос
/ 21 сентября 2010

я пытаюсь портировать System.Drawing: public LinearGradientBrush ( Прямоугольник прямоугольник, Цвет color1, Цвет color2, угол поплавка ) в System.Windows.Media. Я могу получить правильный угол, но не могу получить начало и конец по углам. Я попытался масштабировать трансформацию кисти, но в итоге это искажает угол.

alt text

System.Drawing.Drawing2D.LinearGradientBrush: http://msdn.microsoft.com/en-us/library/ms142563.aspx

System.Windows.Media.LinearGradientBrush: http://msdn.microsoft.com/en-us/library/ms602517.aspx

Ответы [ 3 ]

1 голос
/ 21 сентября 2010

Углы хорошие, гамма-коррекция выглядит иначе.WPF LinearGradientBrush действительно имеет свойство GammaCorrection.Играй с ним.

0 голосов
/ 30 мая 2014

Я полагаю, что точка, в которой вы выбираете градиент для запуска, будет в действительности находиться в центре градиента, если вы используете System.Drawing.Drawing2D. Я могу ошибаться, но похоже на Систему. используют начало градиента в этой точке вместо центра, который, кажется, ведет к некоторому смещению.

0 голосов
/ 22 сентября 2010

Я рассчитываю свои начальную и конечную точки, используя пересечение оси градиента (красная линия) и линии (синяя), перпендикулярной оси градиента, которая также пересекает угол прямоугольника.

alt text

...