public void OnDragMoving(DragControllerEventArgs args)
        {
            foreach (var connection in _connectionItemsControl.FindVisualChildrenWithType <ConnectionShape>())
            {
                if (_sourcePlugType == SourcePlugType.Output)
                {
                    connection.DestX = args.CurrentPoint.X;
                    connection.DestY = args.CurrentPoint.Y;
                }
                if (_sourcePlugType == SourcePlugType.Input)
                {
                    connection.SourceX = args.CurrentPoint.X;
                    connection.SourceY = args.CurrentPoint.Y;
                }
            }

            if (args.Button != MouseButton.Left)
            {
                create_connection(args);
            }
        }
Beispiel #2
0
        public void OnDrag(object sender, MouseEventArgs args)
        {
            //! 作成中仮コネクションの作成(1度だけ)
            if (_connectionItemsControl.Items.IsEmpty && _isCreated is false)
            {
                foreach (var plug in _sourcePlugs)
                {
                    var connection = _plugToConnectionDataContexts[plug];
                    if (_sourcePlugType == SourcePlugType.Input)
                    {
                        connection.DestPlug = plug;
                    }
                    else
                    {
                        connection.SourcePlug = plug;
                    }
                    _connectionItemsControl.Items.Add(connection);
                }
            }

            foreach (var connection in _connectionItemsControl.FindVisualChildrenWithType <ConnectionShape>())
            {
                var point = args.GetPosition(_inputElement);
                if (_sourcePlugType == SourcePlugType.Output)
                {
                    connection.DestX = point.X;
                    connection.DestY = point.Y;
                }
                if (_sourcePlugType == SourcePlugType.Input)
                {
                    connection.SourceX = point.X;
                    connection.SourceY = point.Y;
                }
            }

            if (args.LeftButton != MouseButtonState.Pressed)
            {
                create_connection();
            }
        }