2014-09-25 87 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

相關問題