可以通过代码简化Path.Data的创建吗?

时间:2019-05-30 14:04:56

标签: c# canvas uwp rectangles pathgeometry

我在UWP中有一个Canvas,并且需要在代码隐藏中在其上绘制Path。我有它的工作,但似乎不必要的冗长,特别是考虑到我需要在switch-case语句中有它的四个实例。我想知道是否有一种方法可以简化代码,或者至少将其合并为一行:

C#

Rect door = new Rect(left, top, width, height);
RectangleGeometry doorGeometry = new RectangleGeometry();
doorGeometry.Rect = door;
doorGroup.Children.Add(doorGeometry);
path.Data = doorGroup;

我尝试如下将其放在一行中,但是在IntelliSense中收到多个“没有1个元素的构造函数”错误。有没有一种方法可以简化/减少使用的代码量?

GeometryGroup doorGroup = new GeometryGroup(new RectangleGeometry(new Rect(left, top, width, height);

1 个答案:

答案 0 :(得分:1)

您不能仅使用内置API以更简单的方式编写它。但是,您可以做的是编写自己的基于"builder" pattern的类,该类可以具有Fluent API,该API允许您“作为单个语句”构建路径数据。

请参见this blog post作为流利的构建器示例。