我使用弹出窗口向用户显示验证消息。如果元素(例如Textbox)在视图外滚动,下面的方法工作得很好,我可以很容易地隐藏弹出窗口。
但是,如果我将窗口部分移出屏幕,这样我就看不到元素了,这个方法仍然返回true。在这种情况下,弹出仍然是用户的visibile (弹出窗口始终保持在屏幕边界内),但元素不是。
如何检查屏幕中是否存在一个元素?
发布于 2014-12-09 10:42:56
这可以使用PrimaryScreenWidth和PrimaryScreenHeight在SystemParameters中实现。您需要计算控件相对于屏幕的位置,并检查屏幕边界中是否存在该点。
Point locationFromWindow = this.textBox.TransformToVisual(this).Transform(new Point(0, 0));
Point point = this.textBox.PointToScreen(new Point(0, 0));
Rect rect = new Rect(0, 0, SystemParameters.PrimaryScreenWidth, SystemParameters.PrimaryScreenHeight);
if (!rect.Contains(point))
{
// Outside screen bounds.
}https://stackoverflow.com/questions/27376275
复制相似问题