2009-08-04 68 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