【问题标题】:Access function of containing Canvas from contained children / User Control从包含的子项/用户控件中访问包含 Canvas 的功能
【发布时间】:2014-08-30 05:04:51
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

    您可以从Image 的Parent 属性中轻松获取包含Canvas:

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

    【讨论】:

    • 如何从单独的UserControl.xaml 文件中的函数访问类MainPage : Page 中定义的函数?
    • 如果您的意思是在相同的情况下(其中MainPage 是UserControl 的父级),那么您仍然可以使用Parent 属性...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-20
    • 2021-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-21
    相关资源
    最近更新 更多