internal virtual Geometry GetSelectionOutline(DataPoint dataPoint) { if (dataPoint.View != null) { FrameworkElement frameworkElement = dataPoint.View.MainView ?? dataPoint.View.MarkerView; if (frameworkElement != null) { Rect rect; if (dataPoint.View.AnchorRectOrientation == RectOrientation.None) { Rect layoutSlot = LayoutInformation.GetLayoutSlot(frameworkElement); Point anchorPoint = dataPoint.View.AnchorPoint; rect = new Rect(anchorPoint.X - layoutSlot.Width / 2.0, anchorPoint.Y - layoutSlot.Height / 2.0, layoutSlot.Width, layoutSlot.Height); } else { rect = dataPoint.View.AnchorRect; } return((Geometry) new RectangleGeometry() { Rect = RectExtensions.TranslateToParent(rect, frameworkElement, (FrameworkElement)this.ChartArea) }); } } return((Geometry)null); }
private RectangleGeometry GetBoundingRectangle(FrameworkElement element) { Rect rect = element == this.ChartArea ? new Rect(0.0, 0.0, this.ActualWidth, this.ActualHeight) : LayoutInformation.GetLayoutSlot(element); return(new RectangleGeometry() { Rect = RectExtensions.TranslateToParent(rect, element, (FrameworkElement)this.ChartArea) }); }
internal override Geometry GetSelectionOutline(DataPoint dataPoint) { if (dataPoint.View == null) { return((Geometry)null); } Rect rect1 = new Rect(0.0, 0.0, 6.0, 6.0); Point anchorPoint = dataPoint.View.AnchorPoint; if (double.IsNaN(anchorPoint.X) || double.IsInfinity(anchorPoint.X) || (double.IsNaN(anchorPoint.Y) || double.IsInfinity(anchorPoint.Y))) { return((Geometry)null); } Rect rect2 = new Rect(anchorPoint.X - rect1.Width / 2.0, anchorPoint.Y - rect1.Height / 2.0, rect1.Width, rect1.Height); FrameworkElement child = Enumerable.FirstOrDefault <FrameworkElement>(Enumerable.OfType <FrameworkElement>((IEnumerable)this.RootPanel.Children)); return((Geometry) new RectangleGeometry() { Rect = RectExtensions.Expand(RectExtensions.TranslateToParent(rect2, child, (FrameworkElement)this.ChartArea), 1.0, 1.0) }); }