Пример #1
0
        private void TableDefinitionControlOnMouseMove(object sender, MouseEventArgs e)
        {
            if (!_isInDrag)
            {
                return;
            }

            _currentPoint = e.GetPosition(_modelViewerContainer);

            var xCoordinate = _originalLeft + _currentPoint.X - _anchorPoint.X;
            var yCoordinate = _originalTop + _currentPoint.Y - _anchorPoint.Y;

            // Move the table definition control
            Canvas.SetLeft(_tableDefinitionControl, xCoordinate);
            Canvas.SetTop(_tableDefinitionControl, yCoordinate);

            // Move all the links.
            var keyPairValue    = _tableDefinitionControls.FirstOrDefault(t => t.Value.Equals(_tableDefinitionControl));
            var tableDefinition = keyPairValue.Key;
            var links           = GetAllLinkedLinks(tableDefinition);

            foreach (var link in links)
            {
                var line = _linkDefinitionControls[link];
                UpdateRelationShips.RefreshRelationShipPosition(
                    link,
                    _tableDefinitionControls,
                    _modelViewerContainer,
                    line);
            }
        }
Пример #2
0
        private void OnLinkDefinitionsChanged(object sender,
                                              NotifyCollectionChangedEventArgs e)
        {
            if (e.Action == NotifyCollectionChangedAction.Add)
            {
                var addedItems = e.NewItems;
                foreach (var addedItem in addedItems)
                {
                    var linkDefinition = addedItem as LinkDefinition;
                    if (linkDefinition == null)
                    {
                        continue;
                    }

                    var line = new Line
                    {
                        StrokeThickness = 2,
                        Stroke          = Brushes.Black
                    };

                    _modelViewerContainer.Children.Add(line);
                    Canvas.SetZIndex(line, 1);

                    _linkDefinitionControls.Add(linkDefinition, line);
                    UpdateRelationShips.RefreshRelationShipPosition(
                        linkDefinition,
                        _tableDefinitionControls,
                        _modelViewerContainer,
                        line);
                }
            }
        }