2010-09-21 3 views
1

Я пытаюсь порт System.Drawing: общественного LinearGradientBrush ( Прямоугольник Прямоугольник, Цвет цвет1, Цвет цвет2, угол поплавок ) к System.Windows.Media. Я могу получить угол, чтобы быть правильным, но я не могу заставить начало и конец быть в углах. Я попытался масштабировать преобразование кисти, но это заканчивает испортить угол.Как преобразовать System.Drawing.Drawing2D.LinearGradientBrush в System.Windows.Media.LinearGradientBrush?

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

ответ

0

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

alt text

+1

Это ответ или более подробная информация? Если это более подробная информация, вы можете отредактировать сообщение, чтобы добавить дополнительные данные, а затем удалить этот ответ. –

1

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

0

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

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