如何在WPF中计算从一个区域/矩形到另一个区域/矩形的变换矩阵?

时间:2014-09-25 15:46:26

标签: c# wpf matrix

WinForms中的Drawing2D.Matrix有这个构造函数:

public Matrix(
    Rectangle rect,
    Point[] plgpts
)

...创建了一个矩阵,其中包含正确的数据,用于描述从给定矩形到给定点描述的区域的转换。

如何在WPF中以相同的方式生成Matrix? Windows.Media.Matrix没有相同的构造函数。

修改:

更具体地说,我想知道如何从WPF中的两个区域/矩形获取相同的转换数据。旧的Matrix在它的构造函数中有这个功能,但我找不到在WPF中执行此操作的方法。

1 个答案:

答案 0 :(得分:2)

正如评论中已经提到的,WPF Matrix不提供具有此类功能的构造函数或工厂方法。

然而,您可以从Drawing2D.Matrix的Elements属性创建一个WPF矩阵,如下所示。您需要在WPF项目中添加对System.Drawing程序集的引用。

var drawing2dMatrix = new System.Drawing.Drawing2D.Matrix(rect, points);

var wpfMatrix = new System.Windows.Media.Matrix(
    drawing2dMatrix.Elements[0],
    drawing2dMatrix.Elements[1],
    drawing2dMatrix.Elements[2],
    drawing2dMatrix.Elements[3],
    drawing2dMatrix.Elements[4],
    drawing2dMatrix.Elements[5]);