请看这个:
<Grid>
<ScrollViewer>
<Grid Background="Red" Width="50" Height="50" VerticalAlignment="Top" Margin="0,-50,0,0"/>
</ScrollViewer>
</Grid>
这里红色网格因其边缘而不可见。但是当用户拉下时,它将在屏幕上显示。
我怎么知道什么时候可见?感谢。
(这是一个WP8应用,如果重要的话)
答案 0 :(得分:0)
此方法可能对您有用。
private bool IsUserVisible(FrameworkElement element, FrameworkElement container)
{
if (!element.IsVisible)
return false;
Rect bounds = element.TransformToAncestor(container).TransformBounds(new Rect(0.0, 0.0, element.ActualWidth, element.ActualHeight));
Rect rect = new Rect(0.0, 0.0, container.ActualWidth, container.ActualHeight);
return rect.Contains(bounds.TopLeft) || rect.Contains(bounds.BottomRight);
}