Path.Data 创建可以在代码上简化吗?
Can Path.Data creation be simplified in code?
我在 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 中收到了几个 "No constructor with 1 elements" 错误。有没有办法做到这一点 simplifies/lessens 使用的代码量?
GeometryGroup doorGroup = new GeometryGroup(new RectangleGeometry(new Rect(left, top, width, height);
您不能仅使用 built-in API 以更简单的方式编写它。然而,你可以做的是编写你自己的基于 "builder" pattern 的 class,它可以具有 Fluent API 的特点,允许你建立路径数据 "as a single statement".
请参阅 this blog post 作为流利生成器的示例。
我在 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 中收到了几个 "No constructor with 1 elements" 错误。有没有办法做到这一点 simplifies/lessens 使用的代码量?
GeometryGroup doorGroup = new GeometryGroup(new RectangleGeometry(new Rect(left, top, width, height);
您不能仅使用 built-in API 以更简单的方式编写它。然而,你可以做的是编写你自己的基于 "builder" pattern 的 class,它可以具有 Fluent API 的特点,允许你建立路径数据 "as a single statement".
请参阅 this blog post 作为流利生成器的示例。