2009-08-04 69 views
0

我有一個Silverlight應用程序,其中有一些橢圓的畫布。我在它下面沒有任何元素的另一個畫布。Silverlight放大一個畫布的內容並在另一個畫布上顯示縮放內容

我想要做的是,當我點擊第一個cancas時,我想複製第一個畫布的內容並放大我點擊鼠標的位置並將其顯示在第二個畫布中。

我希望像Local Connection這樣的功能可以在Silverlight 3中使用,但由於畫布在相同的xaml和應用程序中,使用本地連接會過度。

+0

我一直在尋找深層克隆方法,它可以遞歸地獲得每一個形狀及其屬性,然後複製到新的畫布上,但這看起來比本地連接更加矯枉過正。 有沒有一種簡單的方法來克隆Silverlight 3中的畫布及其子項。 – skyfoot 2009-08-05 07:37:50

回答

0

我的解決方案非常簡單,我幾乎尷尬。

我已經把我的第二畫布的屬性,以配合我的第一畫布和重複這不會改變(我打算嘗試從一個XAML文件中提取這些)

任何靜態元素當我點擊第一畫布我添加一個新的橢圓在我點擊的地方。在同一個函數中,我創建另一個橢圓元素並將其添加到我的第二個畫布。

cnvSource.Children.Add(ellipseElement); 
cnvTarget.Children.Add(ellipseElementCopy); 

然後我可以在我的第二畫布創建一個縮放功能,使得第一畫布是unafected。

+0

我不認爲我的解決方案能夠解答我的問題,而且更多的是解決方案。我仍然想知道如何將一個Canvas的全部內容複製到另一個畫布。 – skyfoot 2009-08-06 11:57:09