2014-09-25 51 views
2

Drawing2D.Matrix中的WinForms过这样的构造:如何计算WPF中从一个区域/矩形到另一个区域的矩阵变换?

public Matrix(
    Rectangle rect, 
    Point[] plgpts 
) 

...这创造正确的数据矩阵从给定的矩形由给定的点描述的区域描述转换。

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

编辑:

更具体地讲,我问如何从两个区域/矩形得到WPF相同变换数据。旧的Matrix在它的构造函数中有这个功能,但是我找不到在WPF中这样做的方法。

+0

icemanind - 这不是同一个问题。我在问如何实现相同的转换,而不是如何创建'Drawing2D.Matrix'。 – 2014-09-25 15:51:34

+0

类似如下的东西: 矩阵矩阵=新矩阵(1,1,1,1,0,0) – MHOOS 2014-09-25 15:52:55

+0

听起来更像是问题是如何将Drawing2D.Matrix转换为Media.Matrix,相反引用的“重复”。 – 2014-09-25 15:57:26

回答

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]); 
+0

是的,到目前为止,这似乎是唯一的方法。如果你遇到一个WPF方法来做到这一点,而不需要'System.Drawing.Drawing2D'引用,请告诉我。 – 2014-11-05 15:00:46

相关问题