示例#1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="args"></param>
        protected void OnVertexSelected(object sender, VertexSelectedEventArgs args)
        {
            // Toggle and append selection occurs in area selection only. No need to worry about it here
            var control = args.VertexControl;
            var vertex  = args.VertexControl.Vertex as VertexBase;

            if (args.MouseArgs.LeftButton == MouseButtonState.Pressed)
            {
                // Is this a new selection and/or a toggle selection?
                if (!selected_vertices_.Contains(vertex))
                {
                    ClearSelection();

                    // User is only selecting one vertex
                    SelectVertex(control, false);
                }

                last_vertex_control_ = control;
                //last_vertex_position_.X = last_vertex_control_.GetPosition().X;
                //last_vertex_position_.Y = last_vertex_control_.GetPosition().Y;
                var position = zoom_control_.TranslatePoint(args.MouseArgs.GetPosition(zoom_control_), graph_area_);
                last_vertex_position_.X = position.X;
                last_vertex_position_.Y = position.Y;
            }
        }
示例#2
0
        private void ZoomControlMouseMove(object sender, MouseEventArgs e)
        {
            if (edgeBlueprint == null)
            {
                return;
            }
            var position = zoomControl.TranslatePoint(e.GetPosition(zoomControl), graphArea);

            position.Offset(2, 2);
            edgeBlueprint.UpdateTargetPosition(position);
        }
示例#3
0
        void _zoomControl_MouseMove(object sender, System.Windows.Input.MouseEventArgs e)
        {
            if (_edgeBp == null)
            {
                return;
            }
            var pos = _zoomControl.TranslatePoint(e.GetPosition(_zoomControl), _graphArea);

            pos.Offset(2, 2);
            _edgeBp.UpdateTargetPosition(pos);
        }
示例#4
0
        private void OnGiveFeedback(object sender, GiveFeedbackEventArgs e)
        {
            if (LinkPreviewBehavior.LinkPreview == null)
            {
                return;
            }

            // TODO cached this maybe. not efficient here
            GraphAreaBase graphArea   = AssociatedObject.FindVisualParentOfType <GraphAreaBase>();
            ZoomControl   zoomControl = graphArea.FindVisualParentOfType <ZoomControl>();

            Vector halfsize = new Vector((double)(e.OriginalSource as UIElement).GetValue(FrameworkElement.WidthProperty) / 2.0,
                                         (double)(e.OriginalSource as UIElement).GetValue(FrameworkElement.HeightProperty) / 2.0);

            LinkPreviewBehavior.LinkPreview.SetCurrentValue(UIElement.IsEnabledProperty, true);
            LinkPreviewBehavior.LinkPreview.Start = (e.OriginalSource as UIElement).TranslatePoint(new Point(0, 0), graphArea) + halfsize;
            LinkPreviewBehavior.LinkPreview.End   = zoomControl.TranslatePoint(MouseHelper.GetMousePosition(zoomControl), graphArea);
        }