对于WPF应用程序的文档,我需要一个屏幕截图,并激活所有可用的工具提示。
我试着将应用程序的截图和每幅图像上激活的工具提示结合起来,但我不是PS/Gimp专家,需要组合的图像很多。
发布于 2020-04-03 10:53:38
基于this answer,您可以在应用程序中遍历FrameworkElement类型的所有子程序来激活他们的工具提示(如果有的话)。
要激活工具提示,您可以使用this answer。
最后,您可以在应用程序中添加一个显示所有工具提示按钮,后面的代码如下所示:
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;
}
}https://stackoverflow.com/questions/61010262
复制相似问题