c#wpf如何引用动态添加的控件

时间:2010-07-16 02:20:22

标签: c# wpf-controls

刚开始使用C#,所以这可能过于简单,我一直在忽视它...... 在主窗口中,我有一个名为targetDocArea的stackpanel,它将保存控件。 根据用户输入,控件显示在面板中,如下所示:

var htmlView = new System.Windows.Controls.WebBrowser();
htmlView.MinHeight = 200;
htmlView.Height = deskHeight - 225;
htmlView.Name = "targetDocControl";
htmlView.Navigate(dlg.FileName);
this.targetDocArea.Children.Add(htmlView);

现在我有另一个需要与该控件交互的函数 - 这就是我有点迷失的地方。我认为可以使用一些索引来引用面板的子节点或直接使用名称。

我一直在阅读“this.registerName”,但我不确定这是否是解决此问题的正确方法。

任何指导都会非常感激 - 我不介意从堆叠面板转换到更适合这种交互的东西。

感谢。

1 个答案:

答案 0 :(得分:2)

您应该将控件存储在类中的字段中,如下所示:

private WebBrowser htmlView;

然后,您可以在任何功能中使用此字段。

如果您需要存储控件的多个副本,可以使用List<WebBrowser> field,如下所示:

private List<WebBrowser> htmlViews = new List<WebBrowser>();

//Elsewhere:
htmlViews.Add(something);