如何从MainPage访问UserControl中的元素?

时间:2015-05-04 09:27:23

标签: c# windows-store-apps

我有一个UserControl,它是我的MainPage中存在的FlipView的ItemTemplate。此UserControl包含一个名为x:Name="InkCanvas"的画布。

我想初始化此Canvas并从我的MainPage.xaml.cs

访问它
private readonly CanvasManager m_CanvasManager;
m_CanvasManager = new CanvasManager(InkCanvas);

将其设置为static无济于事!怎么可能呢?

4 个答案:

答案 0 :(得分:0)

试试这个:

private readonly CanvasManager m_CanvasManager;
this.InkCanvas = new CanvasManager();
m_CanvasManager = this.InkCanvas;

答案 1 :(得分:0)

您可以添加UserControl.cs此方法:

public Canvas GetInkCanvas()
{
   return InkCanvas;
}

并使用MainPage.cs形式:

var canvas = userControl.GetInkCanvas(); // userControl - here is the instanse of UserControl.

但总的来说 - 从Canvas分享您的UserControl不是一个好主意。

答案 2 :(得分:0)

我的理解是: 您的用户控件是FlipView的项目模板,您无法找到访问其内容的方式,因此,您需要的是:

$config['protocol'] = 'sendmail';
$config['mailpath'] = '/usr/sbin/sendmail';
$config['charset'] = 'iso-8859-1';
$config['wordwrap'] = TRUE;
$config['mailtype'] = 'html'; // Append This Line
$this->email->initialize($config);

(yourFlipView.Items[index] as YourUserControl).getCanvas(); 是您要在用户控件中访问的画布的getter,您必须在YourUserControl.cs中实现它

答案 3 :(得分:0)

事实证明,如果此UserControl不是我当前的ItemTemplate:我无法访问其任何控件。