C# 使用.net 3.5获取WPF应用程序中UiElement的转换值

C# 使用.net 3.5获取WPF应用程序中UiElement的转换值,c#,.net,wpf,transform,uielement,C#,.net,Wpf,Transform,Uielement,如何获得UIElement的转换值,而不将其添加到WPF中.net 3.5中的可视化树中 成就:一个UIElement(画布)包含一个转换矩阵和多个路径(形状)作为内容。我怎样才能得到变换后的路径(矩阵变换,如缩放、旋转等)呢 假设我们有以下路径 <Path Stroke="Black" StrokeThickness="3.0"> <Path.Data> <PathGeometry> <PathFigure St

如何获得
UIElement
的转换值,而不将其添加到WPF中.net 3.5中的可视化树中

成就:一个
UIElement
(画布)包含一个转换矩阵和多个路径(形状)作为内容。我怎样才能得到变换后的路径(矩阵变换,如缩放、旋转等)呢

假设我们有以下路径

  <Path Stroke="Black" StrokeThickness="3.0">
    <Path.Data>
      <PathGeometry>
        <PathFigure StartPoint="355,-110">
          <LineSegment Point="0,-110" />
        </PathFigure>
        <PathFigure StartPoint="310,-125">
          <LineSegment Point="355,-110" />
          <LineSegment Point="310,-95" />
        </PathFigure>
      </PathGeometry>
    </Path.Data>
  </Path>

。。。我们如何获得附加到画布的转换结果,例如,如果路径在x轴和y轴上按2的值缩放

示例的预期结果:

  <Path Stroke="Black" StrokeThickness="3.0">
    <Path.Data>
      <PathGeometry>
        <PathFigure StartPoint="700,-220">
          <LineSegment Point="0,-220" />
        </PathFigure>
        <PathFigure StartPoint="620,-250">
          <LineSegment Point="710,-220" />
          <LineSegment Point="620,-190" />
        </PathFigure>
      </PathGeometry>
    </Path.Data>
  </Path>


我希望在转换后遍历生成的xml字符串,以便在非wpf代码中使用它。如何获得转换的路径?我尝试过的所有方法(GetChild等)都没有转换就提供了原始路径。

你说的“转换值”是什么意思?请提供更多关于您的问题或您希望实现的目标的详细信息。好的,请更精确地描述问题。我仍然不太清楚。如果将画布添加到可视化树中,如何获得“转换值”(我指的是坐标)?如果您的问题是关于如何直接变换路径或几何体(无画布),那么答案是它们也具有变换属性。它们的转换属性甚至可能被设置为相同的转换对象,例如单个MatrixTransform。我想遍历生成的xml字符串,以便在非wpf代码中使用它。如何获得转换的路径?所有的方法(GetChild等)都在不进行转换的情况下传递原始路径。对其应用了转换窗,但其起点等保持不变。要获得“转换的”值,您必须解析XML,检测是否应用了转换,然后自己修改这些值。。。不那么容易。