Я работаю над приложением С# metro (store), у которого есть пользовательский интерфейс, похожий на следующий код (в качестве примера):
<Canvas x:Name="canvas">
<Image x:Name="image" Canvas.Left="600" Canvas.Top="170"/>
</Canvas>
В содержащем холсте есть функция "AddToLog (строковый текст)", и я хочу, чтобы эта функция была доступна объектам внутри холста (то есть здесь "изображение"). Изображение также может быть User Control, содержащимся в отдельном файле *.xaml. Возможно ли это, и если да, то как мне это сделать? Если нет, есть ли альтернативные способы сделать это?
Вы можете легко получить содержание Canvas
из Image
Parent
:
var canvas = (Canvas)image.Parent;
//at this point you're able to access any function defined in Canvas
//canvas.AddToLog("something");
MainPage : Page
из функции в отдельном файлеUserControl.xaml
?MainPage
является родителемUserControl
), вы все равно можете использовать свойствоParent
...