gpt4 book ai didi

c# - 如何使用 C# 构建 PathGeometry?

转载 作者:行者123 更新时间:2023-11-30 21:57:35 27 4
gpt4 key购买 nike

我在 Windows Phone 8.1 应用程序中使用 Windows Runtime 运行以下 XAML:

<Canvas Name="drawSplice"
Grid.Row="1"
Grid.Column="0"
Height="80"
Width="80"
Background="White">

<Path Stroke="Black"
StrokeThickness="2"
Data="M 10,10 C 10,50 65,10 65,70" />
</Canvas>

它给了我以下形状:

enter image description here

我的问题是如何使用 C# 生成这样的 path 类实例?

Windows.UI.Xaml.Shapes.Path path = new Windows.UI.Xaml.Shapes.Path();

//path.Data = "";

path.StrokeThickness = 3;
path.Stroke = new SolidColorBrush(Colors.Black);
Drawer.Children.Add(path);

最佳答案

您可以使用 XamlReader 从您的字符串中解析和加载 Xaml 对象。您需要一个完整的 Xaml 对象来读取路径数据,而不仅仅是数据本身:

// The path data we want to create
string pathXaml = "M 10,10 C 10,50 65,10 65,70";

// A Xaml container for the path object.
// This could also set other properties like Stroke and StrokeThickness
string xaml = "<Path " +
"xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation'>" +
"<Path.Data>" + pathXaml + "</Path.Data></Path>";

// Read the Xaml string into a Path object
Windows.UI.Xaml.Shapes.Path path = XamlReader.Load(xaml) as Windows.UI.Xaml.Shapes.Path;

// Set other properties we skipped above
path.StrokeThickness = 3;
path.Stroke = new SolidColorBrush(Colors.Blue);

// Add it to our Canvas
drawSplice.Children.Add(path);

您还可以从对象构建路径。 Path.Data 是一个 PathGeometry,其中包含一个 PathFigure(在您的情况下是一个,但可能更多),其中包含 PathSegments(在您的情况下是单个 BezierSegment)。使用标记更容易。要查看其工作原理,您可以从标记或 XamlLoader 创建路径,然后检查其集合以了解其构建方式。

请注意,您的 Xaml 中的路径与您包含的图像不匹配。给定的 Xaml 路径是立方贝塞尔曲线而不是椭圆。如果您想要一个椭圆,您可以使用椭圆,或者从 EllipseGeometry 或 ArcSegments 构建路径。

关于c# - 如何使用 C# 构建 PathGeometry?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30628804/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com