2016-04-01 22 views
2

私はWPFには比較的新しいので、画像のリストを表示するためにStackpanelを使用しています。この画像のリストは動的なので、Stackpanel項目はXAMLではなく、実行時にコードに追加されます。StackPanelアイテムごとに個別のツールチップを設定するにはどうすればよいですか?

Stackpanelに各画像の個々のツールチップをどのように表示するのか、私は好奇心が強いです。私は次のような何かをすることができると考えていた:

private void mainTaskBar_PreviewMouseMove(object sender, MouseEventArgs e) 
{ 
    foreach (Image img in imgList) 
     if (img == e.OriginalSource) 
      displayCorrespondingTooltip(img); 
} 

しかし、これはやりすぎるようです。あなたは単純にスタックパネル内の子供のリストを取得して、個々のツールヒントをSetToolTip()に設定するだけの方法はありますか?それははるかにエレガントな感じです。

ありがとうございます!

+1

これを行うには「正しい」WPFの道をアイテムのObservableCollectionをItemControlのItemsSourceプロパティにバインドし、イメージを表示するItemTemplate、ツールチップなどでバインドすることになります。しかし、これは非常に簡単で強力な方法です。 –

答えて

1

あなたは各種制御のためのツールチップを割り当てるには、次のようなメソッドを定義することができます

public void displayCorrespondingTooltip<T>(T control, string tooltipText) 
    { 
     //For images 
     if (control.GetType() == typeof(Image)) 
     { 
      (control as Image).ToolTip = tooltipText; 
     } 
     //For Rectangles 
     if (control.GetType() == typeof(Rectangle)) 
     { 
      (control as Rectangle).ToolTip = tooltipText; 
     } 
    } 

そして、このバンは、次のように呼び出すこと:

displayCorrespondingTooltip<Image>(img, "This will be the image tooltip"); 
displayCorrespondingTooltip<Rectangle>(rectObject,"rectangle tooltip"); 
+0

わかりました。だから私はちょうどスタックパネルにそれを追加する前に、私は各コ​​ントロールにしたいツールチップと設定を追加することができます!どうもありがとう :) –

関連する問題