我知道这是一个非常微不足道的问题,但我只花了两个小时就没有进展......所以这里是: 在我的程序的某个地方,我有:
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
对不起,所有名字都是法语,可能对你没什么意义(除非bob我猜) 尽管施法,但VS报告说: System.Windows.DependencyObject'不包含source的定义。
在xaml中,很容易,我有一个嵌套在Button中的图像。
答案 0 :(得分: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