2011-08-01 72 views
0

我有一些XAML XAML中描述的反變換矩陣,例如如何從視覺樹

<Path Name="path3" RenderTransform="0.476026892662048,0,0,0.476026892662048,485.101623535156,-68.1086807250977" /> 

在我的代碼,我從XAML構建可視化樹(XamlReader.Load(XAML))。在此操作之後,我需要獲取變換矩陣,但屬性(path.RenderTransform as MatrixTrasform).Matrix沒有在xaml中定義的值(此屬性中的值與1,0,0,1,0,1類似)。

如何獲得變換矩陣?

+1

您已發佈的XAML是無效的。這可能是你得到的默認矩陣。那是你實際的Xaml嗎?最好在用戶控件中測試它,看看Visual Studio是否會拋出錯誤。 –

+0

Visual Studio不會拋出錯誤。並將轉換應用於路徑。並在設計師的路徑正確顯示。 –

+0

視覺工作室應該用紅色標出它,並給出一個錯誤(我的確)。無論如何,請遵循AnthonyW瓊斯的建議。 –

回答

2

XAML中應該是這樣的: -

<Path Name="path3" Data="Path data here"> 
    <Path.RenderTransform> 
     <MatrixTransform Matrix="0.476026892662048,0,0,0.476026892662048,485.101623535156,-68.1086807250977" /> 
    </Path.RenderTransform> 
</Path> 
+0

Xaml不是我的。我不能修改它。我需要在RenderTransform屬性中定義矩陣時進行處理。爲什麼當它在屬性中定義時,我無法獲得有關矩陣的信息(轉換正確應用,設計者不會拋出錯誤)? –

+0

@亞歷克斯:你不能修改它,你不能解析它。我會說你有麻煩。不管設計師可能做什麼或不可能做什麼事實,從__silverlight__ XamlParser的角度來看,Xaml是無效的。如果你不能在源代碼中修改它,那麼你可以編寫一些環跳字符串操作代碼來壓縮它的形狀。但是,由於源代碼顯然不明白正確的Silverlight xaml(源代碼可以WPF爲導向嗎?),那麼你很可能會碰到別的東西,然後是其他東西......這對我來說聽起來像是一個痛苦的世界。 – AnthonyWJones