void ShowTip(string label, Point pos, DataValue data = null) { PointerLabel.Text = label; PointerBorder.UpdateLayout(); double offset = Canvas.GetLeft(Graph); double tipPositionX = pos.X;// + offset; if (tipPositionX + PointerBorder.ActualWidth > this.ActualWidth) { tipPositionX = this.ActualWidth - PointerBorder.ActualWidth; } double tipPositionY = pos.Y - PointerLabel.ActualHeight - 4; if (tipPositionY < 0) { tipPositionY = 0; } PointerBorder.Margin = new Thickness(tipPositionX, tipPositionY, 0, 0); PointerBorder.Visibility = System.Windows.Visibility.Visible; PointerBorder.Data = data; Point pointerPosition = pos; Pointer.RenderTransform = new TranslateTransform(pointerPosition.X, pointerPosition.Y); Pointer.Visibility = System.Windows.Visibility.Visible; LockTooltipMenuItem.IsEnabled = true; }
void ShowTip(string label, Point pos, DataValue data = null) { PointerLabel.Text = label; PointerBorder.UpdateLayout(); double tipPositionX = pos.X; if (tipPositionX + PointerBorder.ActualWidth > this.ActualWidth) { tipPositionX = this.ActualWidth - PointerBorder.ActualWidth; } double tipPositionY = pos.Y - PointerLabel.ActualHeight - 4; if (tipPositionY < 0) { tipPositionY = 0; } Size closeBoxSize = CloseBox.DesiredSize; if (tipPositionX == this.ActualWidth - PointerBorder.ActualWidth && tipPositionY < closeBoxSize.Height) { tipPositionX -= closeBoxSize.Width; } PointerBorder.Margin = new Thickness(tipPositionX, tipPositionY, 0, 0); PointerBorder.Visibility = System.Windows.Visibility.Visible; PointerBorder.Data = data; Point pointerPosition = pos; Pointer.RenderTransform = new TranslateTransform(pointerPosition.X, pointerPosition.Y); Pointer.Visibility = System.Windows.Visibility.Visible; LockTooltipMenuItem.IsEnabled = true; if (PointerMoved != null) { PointerMoved(this, data); } }