有类似Canvas.IsVisible(point)
的内容吗?
我Canvas
内有ScrollViewer
。在画布内部,我有一个自定义控件,应始终位于Canvas的可见部分。
有没有办法识别Canvas 可见矩形或点?
答案 0 :(得分:2)
我创建了一个扩展方法,用于检查元素在容器内是否完全可见:
public static bool IsUserVisible(this FrameworkElement element, FrameworkElement container)
{
if (!element.IsVisible)
return false;
var bounds = element.TransformToAncestor(container).TransformBounds(new Rect(0.0, 0.0, element.ActualWidth, element.ActualHeight));
var rect = new Rect(0.0, 0.0, container.ActualWidth, container.ActualHeight);
return rect.Contains(bounds);
}
在您的情况下,您可以尝试使用类似这样的内容:
myUserControl.IsUserVisible(scrollViewerWithMyCanvas);
答案 1 :(得分:-3)
您可以使用画布的ZOrder属性,并始终将您的控件放在画布顶部