0

我知道这是一个非常微不足道的问题,但我只花了两个小时,根本没有进展......所以这里是:在我的程序的某个地方我有:

UIElement bob = cible as UIElement;

(我必须将其转换为 UIElement 才能访问自定义属性)。

然后我想让鲍勃的孩子(它是一个按钮)来改变它的一个 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 中,这很容易,我有一个嵌套在按钮中的图像。

4

1 回答 1

0

您可以使用一个 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

于 2013-03-01T04:15:05.723 回答