我试图使用GraphUtil
在列表视图上绘制渐变背景,我只有梯度位置问题
这是我的自定义列表视图绘制事件
Var
R: TRect;
begin
// Full ListView
SetRect(R, ARect.Left, ARect.Top, ARect.Right - ((ARect.Right-ARect.Left) div 2), ARect.Bottom );
GradientFillCanvas(Sender.Canvas, panelemo.Color, clWhite, R, gdVertical); // GraphUtil
SetRect(R, ARect.Right - ((ARect.Right-ARect.Left) div 2), ARect.Top, ARect.Right, ARect.Bottom );
GradientFillCanvas(Sender.Canvas, panelemo.Color, clWhite, R, gdVertical);
panelmeter.Color := panelemo.Color;
我想从右到左绘制渐变,而不是像这个图像一样从上到下绘制
答案 0 :(得分:2)
目前还不清楚你真正想要的是什么,因为你所说的与你所展示的不同。
无论如何,gdHorizontal
表示颜色从左到右水平从StartColor
变为EndColor
。在您的图像中,您将指定白色作为开始颜色并将turqoise指定为结束颜色。如果要更改水平方向(从右到左),则需要交换颜色。
水平使用代码示例:
GradientFillCanvas(ListView1.Canvas, AColor, clWhite, R, gdHorizontal);
gdVertical
表示颜色从上到下垂直变化。如果要更改垂直方向(从下到上),则需要交换颜色。
垂直使用代码示例:
GradientFillCanvas(ListView1.Canvas, AColor, clWhite, R, gdVertical);
我认为您提到的切片结果,是由于您为GradientFillCanvas()
的每一半绘制了两次调用TRect
一次的渐变。