Пример #1
0
        private void Grid_KeyDown(object sender, KeyEventArgs evt)
        {
            if (_currentCmd == "node editing")
            {
                return;
            }
            switch (evt.Key)
            {
            case Key.V:
                selectBtn.IsChecked = true;
                pressingBtn(selectBtn);
                _currentCmd = "select";
                break;

            case Key.E:
                edgeBtn.IsChecked = true;
                pressingBtn(edgeBtn);
                _currentCmd = "add edge";
                break;

            case Key.N:
                nodeBtn.IsChecked = true;
                pressingBtn(nodeBtn);
                _currentCmd = "add node";
                break;

            case Key.Space:
                _graphViewer.Panning = true;
                var sresInfo = Application.GetResourceStream(new Uri("cur_scroll.cur", UriKind.Relative));
                var cur      = new System.Windows.Input.Cursor(sresInfo.Stream);
                this.Cursor = cur;
                break;

            case Key.T:
                VDebug.D.tag++;
                this.Title = $"trigged{selfcounter++}";
                break;

            case Key.Delete:
                if (_currentCmd == "select")
                {
                    foreach (var obj in _graphViewer.LayoutEditor.dragGroup)
                    {
                        var vnode = obj as VNode;
                        if (vnode != null)
                        {
                            _graphViewer.RemoveNode(vnode, true);
                            continue;
                        }
                        var vedge = obj as VEdge;
                        if (vedge != null)
                        {
                            _graphViewer.RemoveEdge(vedge, true);
                            continue;
                        }
                        var vlabel = obj as VLabel;
                        if (vlabel != null)
                        {
                            _graphViewer.RemoveLabel(vlabel);
                        }
                    }
                    _graphViewer.LayoutEditor.Clear();
                }
                break;
            }
        }