在WPF中翻译PathGeometry

时间:2016-11-06 20:20:12

标签: c# .net wpf

在WPF(C#)中有一种简单的方法来翻译PathGeometry吗?

有一个PathGeometry(System.Windows.Media)和一个Vector(System.Windows.Vector)我想翻译整个Geometry,而不需要用它们的Segments和相应的Points分析每个图。代码非常简单,但我正在寻找一种使用WPF(C#)已经提供的标准功能的方法。有什么想法吗?

2 个答案:

答案 0 :(得分:7)

将几何的Transform属性设置为适当的TranslateTransform,例如

Geometry geometry = ...
Vector translation = ...

geometry.Transform = new TranslateTransform(translation.X, translation.Y);

答案 1 :(得分:1)

在环顾四周之后,我找到了解决自己问题的方法:

public PathGeometry TranslatePathGeometry(PathGeometry originalGeometry, Vector translationVector)
{
   originalGeometry.Transform = new TranslateTransform(translationVector.X, translationVector.Y);
   return PathGeometry.CreateFromGeometry(originalGeometry);
}

我使用Geometry.Combine方法找到了其他选项,但我觉得这个解决方案更优雅。

正如Clemens所解释的,创建一个新的GeometryPath甚至没有必要,你只需应用TranslateTransform就可以完美地工作。