private void ScrollerTestHooks_AnchorEvaluated(Scroller sender, ScrollerTestHooksAnchorEvaluatedEventArgs args) { string anchorName; Border newAnchor = null; if (args.AnchorElement == null) { anchorName = "null"; } else { if (args.AnchorElement is FrameworkElement) { FrameworkElement anchorElementAsFE = args.AnchorElement as FrameworkElement; if (string.IsNullOrWhiteSpace(anchorElementAsFE.Name)) { anchorName = "unnamed-FE"; } else { anchorName = anchorElementAsFE.Name; } newAnchor = anchorElementAsFE as Border; } else { anchorName = "UIE"; } } if (newAnchor != currentAnchor) { if (currentAnchor != null) { currentAnchor.BorderBrush = chartreuseBrush; } if (newAnchor != null) { newAnchor.BorderBrush = orangeBrush; } currentAnchor = newAnchor; } if (double.IsNaN(args.ViewportAnchorPointHorizontalOffset) && double.IsNaN(args.ViewportAnchorPointVerticalOffset)) { cnsAnchorPoint.Visibility = Visibility.Collapsed; } else { cnsAnchorPoint.Visibility = Visibility.Visible; if (double.IsNaN(args.ViewportAnchorPointHorizontalOffset)) { rectAnchorPoint.Width = scroller.Width; Canvas.SetLeft(rectAnchorPoint, 0); } else { rectAnchorPoint.Width = double.IsNaN(args.ViewportAnchorPointVerticalOffset) ? 2 : 4; Canvas.SetLeft(rectAnchorPoint, args.ViewportAnchorPointHorizontalOffset * scroller.ZoomFactor - scroller.HorizontalOffset - rectAnchorPoint.Width / 2); } if (double.IsNaN(args.ViewportAnchorPointVerticalOffset)) { rectAnchorPoint.Height = scroller.Height; Canvas.SetTop(rectAnchorPoint, 0); } else { rectAnchorPoint.Height = double.IsNaN(args.ViewportAnchorPointHorizontalOffset) ? 2 : 4; Canvas.SetTop(rectAnchorPoint, args.ViewportAnchorPointVerticalOffset * scroller.ZoomFactor - scroller.VerticalOffset - rectAnchorPoint.Height / 2); } } if (chkLogScrollerAnchorNotifications.IsChecked == true) { AppendAsyncEventMessage(" AnchorEvaluated: s:" + sender.Name + ", a:" + anchorName + ", ap:(" + (int)args.ViewportAnchorPointHorizontalOffset + ", " + (int)args.ViewportAnchorPointVerticalOffset + ")"); } }
private void ScrollerTestHooks_AnchorEvaluated(Scroller sender, ScrollerTestHooksAnchorEvaluatedEventArgs args) { string anchorName = (args.AnchorElement is FrameworkElement) ? (args.AnchorElement as FrameworkElement).Name : string.Empty; Log.Comment(" AnchorEvaluated: s:" + sender.Name + ", a:" + anchorName + ", ap:(" + args.ViewportAnchorPointHorizontalOffset + "," + args.ViewportAnchorPointVerticalOffset + ")"); }