如何从 CGPoint 开始和结束指定一个矩形?

How to specify a rectangle from the CGPoint Start and End?

我有一个矩形边界 (10, 20, 100, 200),CGPoints 是 StartPoint (0.5, 0.5),EndPoints 是 (1, 1)。从这些点需要如何计算段边界?我需要将此边界应用于 CGGradient 的起点和终点。

例如代码:

GradientColor gradientColor1 = new GradientColor(){StartPoint = new CGPoint(0.5, 0), EndPoint= new CGPoint(0.5, 1)};

GradientStop stop1 = new GradientStop() { Color = UIColor.Red, Offset = 0.1f };
GradientStop stop2 = new GradientStop() { Color = UIColor.Blue, Offset = 0.9f };

你能帮我解决这个问题吗?

这是一个示例,它将在当前 CGContext 中创建从左到右的线性渐变。

using (var context = UIGraphics.GetCurrentContext ()) {
    context.SaveState();
    var startPoint = new CGPoint(rect.Left, 0);
    var endPoint = new CGPoint(rect.Right, 0);
    var components = new CGColor[] { UIColor.Red.CGColor, UIColor.Blue.CGColor };

    using (var rgb = CGColorSpace.CreateDeviceRGB()) {
        var gradient = new CGGradient(rgb, components);
        context.DrawLinearGradient(gradient, startPoint, endPoint, CGGradientDrawingOptions.DrawsBeforeStartLocation);
    };
    context.RestoreState();
}

改变起点和终点,您可以从右到左、up/down、对角线等进行渐变绘制。