internal static bool IsListItemOffScreen(Rect itemBounds, SWF.Control containerControl, bool visibleHeader, Rectangle headerBounds, IScrollBehaviorObserver observer) { Rectangle listViewRectangle = containerControl.Bounds; if (visibleHeader) { listViewRectangle.Y += headerBounds.Height; listViewRectangle.Height -= headerBounds.Height; } if (observer.HorizontalScrollBar.Visible) { listViewRectangle.Height -= observer.HorizontalScrollBar.Height; } if (observer.VerticalScrollBar.Visible) { listViewRectangle.Width -= observer.VerticalScrollBar.Width; } Rect screen = Helper.RectangleToRect(containerControl.Parent.RectangleToScreen(listViewRectangle)); return(!itemBounds.IntersectsWith(screen)); }
protected void UpdateScrollBehavior(IScrollBehaviorObserver observer) { if (observer != null && observer.SupportsScrollPattern) { SetBehavior(ScrollPatternIdentifiers.Pattern, GetBehaviorRealization(ScrollPatternIdentifiers.Pattern)); } else { SetBehavior(ScrollPatternIdentifiers.Pattern, null); } if (ScrollPatternSupportChanged != null) { ScrollPatternSupportChanged(); } }
protected void UpdateScrollBehavior (IScrollBehaviorObserver observer) { if (observer != null && observer.SupportsScrollPattern) SetBehavior (ScrollPatternIdentifiers.Pattern, GetBehaviorRealization (ScrollPatternIdentifiers.Pattern)); else SetBehavior (ScrollPatternIdentifiers.Pattern, null); if (ScrollPatternSupportChanged != null) ScrollPatternSupportChanged (); }