我想到了。
以下是步骤
StrokeCollection
PathGeometry
每个Stroke
调用GetGeometry
函数,然后调用GetOutlinedPathGeometry
。Figures
出去Geometry
。我通过将 保存PathGeometry
到 XAML 然后Figures
通过XElement.Parse
.我正在使用SVG 渲染库来创建 SVG 文档。
var svg = new SvgDocument();
var colorServer = new SvgColourServer(System.Drawing.Color.Black);
var group = new SvgGroup {Fill = colorServer, Stroke = colorServer};
svg.Children.Add(group);
foreach (var stroke in InkCanvas.Strokes)
{
var geometry = stroke.GetGeometry(stroke.DrawingAttributes).GetOutlinedPath??Geometry();
var s = XamlWriter.Save(geometry);
if (s.IsNotNullOrEmpty())
{
var element = XElement.Parse(s);
var data = element.Attribute("Figures")?.Value;
if (data.IsNotNullOrEmpty())
{
group.Children.Add(new SvgPath
{
PathData = SvgPathBuilder.Parse(data),
Fill = colorServer,
Stroke = colorServer
});
}
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1395 次 |
最近记录: |