在 Windows Phone 8.1 上将 Ellipse 或 EllipseGeometry 转换为 PathFigure
Convert Ellipse or EllipseGeometry to PathFigure on Windows Phone 8.1
我偶然发现了将 Ellipse 转换为 PathGeometry。
我尝试过使用 ArcSegment 来呈现 Ellipse,但仍然不知道如何将 Ellipse 大小转换为 ArcSegment 大小。我试图将椭圆分成两部分,但还有其他方法,即贝塞尔曲线。
需要线索如何将 Ellipse 转换为 ArcSegment 集合。
整个过程可能是这样的:
public static PathFigure ToFigures(this Ellipse ellipse)
{
var pathFigure = new PathFigure {IsClosed = true};
var arcSegment1 = new ArcSegment();
var arcSegment2 = new ArcSegment();
pathFigure.Segments.Add(arcSegment1);
pathFigure.Segments.Add(arcSegment2);
return pathFigure;
}
您可以直接使用 EllipseGeometry 作为路径数据:
path = new Path
{
Data = new EllipseGeometry { RadiusX = 100, RadiusY = 50 }
};
使用椭圆的大小,它看起来像这样:
path = new Path
{
Data = new EllipseGeometry
{
RadiusX = ellipse.ActualWidth / 2,
RadiusY = ellipse.ActualHeight / 2
}
};
我偶然发现了将 Ellipse 转换为 PathGeometry。 我尝试过使用 ArcSegment 来呈现 Ellipse,但仍然不知道如何将 Ellipse 大小转换为 ArcSegment 大小。我试图将椭圆分成两部分,但还有其他方法,即贝塞尔曲线。 需要线索如何将 Ellipse 转换为 ArcSegment 集合。 整个过程可能是这样的:
public static PathFigure ToFigures(this Ellipse ellipse)
{
var pathFigure = new PathFigure {IsClosed = true};
var arcSegment1 = new ArcSegment();
var arcSegment2 = new ArcSegment();
pathFigure.Segments.Add(arcSegment1);
pathFigure.Segments.Add(arcSegment2);
return pathFigure;
}
您可以直接使用 EllipseGeometry 作为路径数据:
path = new Path
{
Data = new EllipseGeometry { RadiusX = 100, RadiusY = 50 }
};
使用椭圆的大小,它看起来像这样:
path = new Path
{
Data = new EllipseGeometry
{
RadiusX = ellipse.ActualWidth / 2,
RadiusY = ellipse.ActualHeight / 2
}
};