首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以在控件中显示所有可用的工具提示?

是否可以在控件中显示所有可用的工具提示?
EN

Stack Overflow用户
提问于 2020-04-03 10:53:38
回答 1查看 42关注 0票数 0

对于WPF应用程序的文档,我需要一个屏幕截图,并激活所有可用的工具提示。

我试着将应用程序的截图和每幅图像上激活的工具提示结合起来,但我不是PS/Gimp专家,需要组合的图像很多。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-03 10:53:38

基于this answer,您可以在应用程序中遍历FrameworkElement类型的所有子程序来激活他们的工具提示(如果有的话)。

要激活工具提示,您可以使用this answer

最后,您可以在应用程序中添加一个显示所有工具提示按钮,后面的代码如下所示:

代码语言:javascript
复制
private void DisplayAllToolTips_OnClick(object sender, RoutedEventArgs e)
{
    foreach (var element in FindVisualChildren<FrameworkElement>(this))
    {
        if (element.ToolTip == null)
            continue;

        var toolTip = element.ToolTip as ToolTip ??
                      new ToolTip {Content = element.ToolTip};

        element.ToolTip = toolTip;

        toolTip.PlacementTarget = element;
        toolTip.Placement = PlacementMode.Relative;
        toolTip.HorizontalOffset = 6;
        toolTip.VerticalOffset = -6;
        toolTip.Opacity = 0.8;

        toolTip.IsOpen = true;
    }
}

private static IEnumerable<T> FindVisualChildren<T>(DependencyObject depObj) where T : DependencyObject
{
    if (depObj == null)
        yield break;

    for (var i = 0; i < VisualTreeHelper.GetChildrenCount(depObj); i++)
    {
        var child = VisualTreeHelper.GetChild(depObj, i);
        if (child is T t)
            yield return t;

        foreach (var childOfChild in FindVisualChildren<T>(child))
            yield return childOfChild;
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61010262

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档