void MoveHighlightNode(Point p) { if (Network != null) { WirelessNetworkNode selNode = null; Point selPoint = new Point(); double minDistance = double.PositiveInfinity; foreach (var node in Network.Nodes) { Point np = new Point(node.X, node.Y); double dsquared = (p - np).LengthSquared; if (dsquared < minDistance) { selNode = node; selPoint = np; minDistance = dsquared; } } double snapDistance = 20; // pixels snapDistance = Math.Pow(NetworkControl.ScreenToLocal(snapDistance), 2); if (minDistance < snapDistance) { SelectedNode = selNode; p = selPoint; } else { SelectedNode = null; } } NetworkControl.SetUserCursor(p); }
private void NetworkControl_MouseMove(object sender, MouseEventArgs e) { Point p = e.GetPosition(NetworkControl); p = NetworkControl.ScreenToLocal(p); ActionContext c = GetActionContext(); c?.MouseMove?.Invoke(p); }
private void NetworkControl_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { Point p = e.GetPosition(NetworkControl); p = NetworkControl.ScreenToLocal(p); ActionContext c = GetActionContext(); c?.MouseDown?.Invoke(p); }