Esempio n. 1
0
 public override void AddAdorner(AdornerLayer s)
 {
     if (s != null && m_Line != null)
     {
         Adorner ad = new LineAdorner(this.m_Line);
         s.Add(ad);
     }
 }
        private void UserControl_Loaded(object sender, RoutedEventArgs e)
        {
            //Adorner
            AdornerLayer adornerLayer = AdornerLayer.GetAdornerLayer(ListGrid);
            LineAdorner  Adorner      = new LineAdorner(ListGrid, (FocusGridModel)this.DataContext);

            adornerLayer.Add(Adorner);
            setupInternalFoci();
        }
        public void Dropped()
        {
            if (_adorner == null)
            {
                return;
            }

            var adornerLayer = AdornerLayer.GetAdornerLayer(Control);

            adornerLayer.Remove(_adorner);

            _adorner = null;
        }
        private void ControlDragEnter([NotNull] object sender, [NotNull] DragEventArgs e)
        {
            Debug.ArgumentNotNull(sender, nameof(sender));
            Debug.ArgumentNotNull(e, nameof(e));

            if (!Control.AllowDrop)
            {
                return;
            }

            _adorner = new LineAdorner(Control);
            _adorner.SetValue(RenderOptions.EdgeModeProperty, EdgeMode.Aliased);

            var adornerLayer = AdornerLayer.GetAdornerLayer(Control);

            adornerLayer.Add(_adorner);

            SetPosition(e);

            e.Handled = true;
        }
Esempio n. 5
0
        private void UserControl_Loaded(object sender, RoutedEventArgs e)
        {
            //Adorner
            AdornerLayer adornerLayer = AdornerLayer.GetAdornerLayer(ListGrid);
            LineAdorner  Adorner      = new LineAdorner(ListGrid, (FocusGridModel)DataContext);

            adornerLayer.Add(Adorner);
            setupInternalFoci();
            Mouse.OverrideCursor = null;
            //Keydown
            Window MainWindow = Application.Current.Windows.OfType <Window>()
                                .SingleOrDefault(x => x.IsActive);

            if (MainWindow == null)
            {
                return;
            }
            MainWindow.KeyDown += FocusGrid_OnKeyDown;
            MainWindow.KeyUp   += FocusGrid_OnKeyUp;
            //Check Tutorial
            new ViewModelLocator().Tutorial.StartCommand.RaiseCanExecuteChanged();
        }
Esempio n. 6
0
        public void AddAdorner(object sender, object followItem = null)
        {
            Drawer.Selector.FinishSelect();

            if (sender is Line line)
            {
                var al  = AdornerLayer.GetAdornerLayer(line);
                var adn = new LineAdorner(line);
                adn.Drawer     = Drawer;
                adn.FollowItem = followItem;
                al?.Add(adn);

                Drawer.DrawTool = Tool.MoveResize;
            }
            else
            {
                var al  = AdornerLayer.GetAdornerLayer((UIElement)sender);
                var adn = new ResizingAdorner((UIElement)sender);
                adn.Drawer = Drawer;
                al?.Add(adn);

                Drawer.DrawTool = Tool.MoveResize;
            }
        }
Esempio n. 7
0
        private void DragEnter([NotNull] object sender, [NotNull] DragEventArgs e)
        {
            Debug.ArgumentNotNull(sender, nameof(sender));
            Debug.ArgumentNotNull(e, nameof(e));

            if (!ListView.AllowDrop)
            {
                return;
            }

            if (Line == null)
            {
                Line = new LineAdorner(ListView);
                Line.SetValue(RenderOptions.EdgeModeProperty, EdgeMode.Aliased);

                var adornerLayer = AdornerLayer.GetAdornerLayer(ListView);
                if (adornerLayer != null)
                {
                    adornerLayer.Add(Line);
                }
            }

            UpdatePosition(e);
        }
        private static void ItemsControl_PreviewMouseMove(object sender, System.Windows.Input.MouseEventArgs e)
        {
            if (sender is ItemsControl itemsControl)
            {
                DragStatusEnum dragStatus = GetDragStatus(itemsControl);

                switch (dragStatus)
                {
                case DragStatusEnum.None:
                    break;

                case DragStatusEnum.Begining:
                {
                    if (e.LeftButton == System.Windows.Input.MouseButtonState.Pressed)
                    {
                        Vector vector = e.GetPosition(itemsControl) - mouseDownPoint;
                        if (vector.X > dragBeginedOffset || vector.Y > dragBeginedOffset)
                        {
                            SetDragStatus(itemsControl, DragStatusEnum.Draging);

                            if (dragInfo.ItemContainer is FrameworkElement frameworkElement)
                            {
                                frameworkElement.CaptureMouse();
                                if (dragAdorner != null)
                                {
                                    dragAdorner.Detath();
                                }
                                Point offset = e.GetPosition(frameworkElement);
                                dragAdorner = new DragAdorner(itemsControl, frameworkElement, new Point()
                                    {
                                        X = -offset.X, Y = -offset.Y
                                    });
                            }
                        }
                    }
                }
                break;

                case DragStatusEnum.Draging:
                {
                    if (e.LeftButton == System.Windows.Input.MouseButtonState.Pressed)
                    {
                        if (dragAdorner != null)
                        {
                            dragAdorner.UpdatePoint(e.GetPosition(itemsControl));
                        }

                        if (GetItem(itemsControl.ItemContainerGenerator, itemsControl.InputHitTest(e.GetPosition(itemsControl)), out DependencyObject itemContainer, out object item))
                        {
                            if (/*itemContainer != dragInfo.ItemContainer && */ itemContainer is FrameworkElement frameworkElement)
                            {
                                if (lineAdorner == null)
                                {
                                    lineAdorner = new LineAdorner(itemsControl);
                                    lineAdorner.UpdateBrush(GetDropTargetLineBrush(itemsControl), GetDropTargetLineThickness(itemsControl));
                                    lineAdorner.UpdateTarget(e.MouseDevice, frameworkElement, GetItemPanelOrientation(itemsControl));
                                }
                                else
                                {
                                    lineAdorner.UpdateTarget(e.MouseDevice, frameworkElement, GetItemPanelOrientation(itemsControl));
                                }
                            }
                        }
                        else
                        {
                            if (lineAdorner != null)
                            {
                                lineAdorner.ClearTarget();
                            }
                        }

                        e.Handled = true;
                    }
                }
                break;
Esempio n. 9
0
        private void workSpace_PreviewMouseLeftButtonUp_1(object sender, MouseButtonEventArgs e)
        {
            var adornerLayer = AdornerLayer.GetAdornerLayer(workSpace);

            if (_draggingConnectionLineAdorner != null)
            {
                adornerLayer.Remove(_draggingConnectionLineAdorner);
                _draggingConnectionLineAdorner = null;

                //workSpace.ReleaseMouseCapture();

                ViewModel.PinViewModel.CancelConnect();

                e.Handled = true;
            }
        }
Esempio n. 10
0
        private void Pin_PreviewMouseLeftButtonDown_1(object sender, MouseButtonEventArgs e)
        {
            var pin = ((FrameworkElement)sender).DataContext as ViewModel.PinViewModel;
            pin.BeginConnect();

            var adornerLayer = AdornerLayer.GetAdornerLayer(workSpace);

            if( _draggingConnectionLineAdorner != null )
            {
                adornerLayer.Remove(_draggingConnectionLineAdorner);
            }

            var pos = e.GetPosition(workSpace);

            _draggingConnectionLineAdorner = new LineAdorner(workSpace) { From = pos, To = pos };

            adornerLayer.Add(_draggingConnectionLineAdorner);

            //workSpace.CaptureMouse();

            e.Handled = true;
        }
Esempio n. 11
0
        private void PinEllipse_PreviewMouseLeftButtonUp_1(object sender, MouseButtonEventArgs e)
        {
            var adornerLayer = AdornerLayer.GetAdornerLayer(workSpace);

            if (_draggingConnectionLineAdorner != null)
            {
                adornerLayer.Remove(_draggingConnectionLineAdorner);
                _draggingConnectionLineAdorner = null;

                //workSpace.ReleaseMouseCapture();

                var pin = ((FrameworkElement)sender).DataContext as ViewModel.PinViewModel;

                try
                {
                    pin.EndConnect();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }

                UpdateWorkspaceViewModel();

                e.Handled = true;
            }
        }