GetChild是如何工作的

本文关键字:工作 何工作 GetChild | 更新日期: 2023-09-27 18:01:42

我知道这是一个非常微不足道的问题,但是我刚刚花了两个小时研究它,一点进展也没有……所以是这样的:在程序的某个地方,我有:

UIElement bob = cible as UIElement;

(我必须将其强制转换为UIElement以访问自定义属性)。

然后我想让bob的孩子(它是一个按钮)改变它的一个xaml属性。我找到了很多方法来做到这一点,GetChild, GetVisualChild等…我还是没有成功,所以如果有人能帮助我,那就太好了。我在msdn上看到了文档,我正在学习逻辑和可视化树,但它仍然在我的头上…谢谢你。

编辑更多信息

我要做的代码块如下:

object cible = FindName(nomtargetpad);//Retrieve a button that was clicked previously
UIElement bob = cible as UIElement;//converting it to access a custom property
MyClass.SetSon( bob, bufferson) ;//set this custom property for this element

现在,我必须找到元素的子元素(bob或cible),它是一个图像,并设置它的源。我在MainPage类中添加了这个(这就是msdn文档中的全部内容):

public static DependencyObject GetChild(
DependencyObject reference,
int childIndex);

然后在上面的代码块中添加:

DependencyObject joli = GetChild(bob, 0);//tryin to use what's on  msdn 
          Image belleimage = joli as Image;// Tryin to cast to avoid the problem listed below
          string nouvelleimage = "images/"+sons[bufferson]+".png";//preparing the new source
          joli.Source = nouvelleimage;//setting the new source

对不起,所有的名字都是法语,这可能对你没有任何意义(除非鲍勃我猜)除了选角,《VS》报道:System.Windows。DependencyObject'不包含源的定义。

在xaml中,这很简单,我有一个嵌套在按钮中的图像

GetChild是如何工作的

你可以使用VisualTreeHelper类,http://msdn.microsoft.com/en-us/library/system.windows.media.visualtreehelper.getchild (v = vs.95) . aspx

或者如果子元素在按钮模板中,你应该使用GetTemplateChild http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.gettemplatechild.aspx