如何将System.Drawing.Drawing2D.LinearGradientBrush转换为System.Windows.Media.LinearGradientBrush?

时间:2010-09-21 17:22:59

标签: wpf winforms gdi+ system.drawing

我试图移植 System.Drawing中: public LinearGradientBrush(     矩形矩形,     颜色color1,     颜色2,     浮角 ) 到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 个答案:

答案 0 :(得分:1)

角落很好,伽马校正看起来不同。 WPF LinearGradientBrush确实具有GammaCorrection属性。玩它。

答案 1 :(得分:0)

我使用渐变轴(红线)和垂直于渐变轴的线(蓝色)的交点来计算我的起点和终点,渐变轴也与矩形的一角相交。

alt text

答案 2 :(得分:0)

我相信,如果使用System.Drawing.Drawing2D,选择渐变开始的点实际上将是渐变中心的位置。我可能错了,但看起来像System。正在使用该点的渐变的开头而不是中心,这似乎导致了一点偏移。