xamarin基于坐标形成绝对布局绘制形状

时间:2017-12-11 00:57:28

标签: c# xaml xamarin xamarin.forms

我在绝对布局上使用坐标来标记某些点,即:

new Point() { X = 0, Y = 0 };
new Point() { X = 0, Y = 300 };
new Point() { X = 200, Y = 0 };

如何从点到点绘制线条,连接它们,在这种情况下是三角形?

1 个答案:

答案 0 :(得分:0)

SkiaSharp很棒,但如果您不需要Skia的所有功能,NControl / NGraphics可以避免本机库的开销,增加的应用程序大小,初始化时间和内存消耗。

在绘制点的路径方面,这是一个非常简单的例子:

NControlView子类,用于绘制NGraphics的列表' PathOp

public class PathControl : NControlView
{
    public IEnumerable<PathOp> Path { get; set; }

    public override void Draw(ICanvas canvas, Rect rect)
    {
        if (Path != null)
            canvas.DrawPath(Path, new Pen(Colors.Red, 5));
    }
}

运行时分配:

然后,您可以在运行时分配IEnumerable<PathOp>

pathControl.Path = new PathOp[] {
    new MoveTo (40, 60),
    new LineTo (120, 60),
    new LineTo (80, 30),
    new ClosePath ()
};
pathControl.Invalidate();

的Xaml:

从此answer获取XAML并添加:

<nc:PathControl x:Name="pathControl" AbsoluteLayout.LayoutBounds="1,1,1,1" AbsoluteLayout.LayoutFlags="All" />    

你可以产生这个:

enter image description here

使用更多矢量工作,如下所示:

enter image description here

其他NControl / NGraphics答案/示例:

enter image description here

re:Xamarin.Forms - How To Achieve 45 deg. Angled Background Color

enter image description here

re:Creating completeness meter (Status display) in Xamarin

enter image description here

re:Pop Up in xamarin.forms