从包含的子/用户控件中包含Canvas的访问功能

时间:2014-08-30 05:04:51

标签: c# canvas windows-store-apps microsoft-metro

我正在开发一个C#metro(store)应用程序,它的UI类似于以下代码(作为示例):

<Canvas x:Name="canvas">
<Image x:Name="image" Canvas.Left="600" Canvas.Top="170"/>
</Canvas>

包含画布有一个函数“AddToLog(string text)”,我希望画布内的对象也可以访问这个函数(也就是这里的“image”)。该图像也可以是包含在单独的* .xaml文件中的用户控件。这是可能的,如果是这样,我该如何去做呢?如果没有,有没有其他方法可以做到这一点?

1 个答案:

答案 0 :(得分:1)

您可以轻松地从Canvas Image财产中获取Parent

var canvas = (Canvas)image.Parent;
//at this point you're able to access any function defined in Canvas
//canvas.AddToLog("something");