如何为每个StackPanel项设置单独的工具提示?

时间:2016-04-01 01:18:19

标签: c# wpf image tooltip stackpanel

我对WPF比较新,并且正在使用Stackpanel来显示图像列表。此图像列表是动态的,因此Stackpanel项目在运行时以代码的形式添加,而不是直接在XAML中添加。

我很好奇如何设法为Google Maps API warning: NoApiKeys https://developers.google.com/maps/documentation/javascript/error-messages#no-api-keys 中的每个图像显示单独的工具提示。我以为我可以做以下事情:

Stackpanel

但这似乎有点过分了。有没有什么方法可以简单地在stackpanel中获取子项列表,只需使用private void mainTaskBar_PreviewMouseMove(object sender, MouseEventArgs e) { foreach (Image img in imgList) if (img == e.OriginalSource) displayCorrespondingTooltip(img); } 设置每个工具提示?我觉得那会更优雅。

谢谢!

1 个答案:

答案 0 :(得分: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");