0

それが非常に些細な質問であることは知っていますが、私はそれに 2 時間費やしたばかりで、まったく進歩していません。

UIElement bob = cible as UIElement;

(カスタム プロパティにアクセスするには、UIElement にキャストする必要がありました)。

次に、ボブの子 (ボタン) を取得して、その xaml 属性の 1 つを変更したいと思います。私はそれを行うための多くの方法を見つけましたGetChildGetVisualChildなど...私はまだ成功していないので、誰かが私を助けることができれば、それは素晴らしいことです. 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 は次のように報告しています。

xaml では簡単です。Image が Button にネストされています。

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 に答える