コード例 #1
0
        /*void SetIsEnabledDraggableDescendants(bool isEnabled)
         * {
         *  if (TypeControlUnderMouseAvoidingMove != null)
         *  {
         *      var draggableElements = WPFUtil.FindChilds(TypeControlUnderMouseAvoidingMove, AssociatedObject);
         *      foreach (var de in draggableElements)
         *          DraggableFrameworkElementBehavior.SetIsEnabled(isEnabled, (FrameworkElement)de);
         *  }
         * }*/

        private void AssociatedObject_MouseUp(object sender, MouseButtonEventArgs e)
        {
            if (e.ChangedButton == MouseButton.Left && IsDragging)
            {
#if alldbg || dbg
                DesktopPanelTool.Lib.Debug.WriteLine($"end drag move");
#endif
                IsDragging = false;
                Mouse.Capture(null);
                AssociatedObject.Cursor = CursorDefault;
                ResizableTransparentWindowBehavior.EnableResizableBehavior(AssociatedObject);
                DraggableFrameworkElementBehavior.SetIsEnabledDraggableDescendants(
                    AssociatedObject, TypeControlUnderMouseAvoidingMove, true);
            }
        }
コード例 #2
0
        void SetUpIsMoving(Point setUpIsMovingFrom)
        {
            LastDragMoveTime        = DateTime.Now;
            AssociatedObject.Cursor = CursorDragging;
#if alldbg || dbg
            DesktopPanelTool.Lib.Debug.WriteLine($"start drag move: x={setUpIsMovingFrom.X},y={setUpIsMovingFrom.Y}");
#endif
            InitialPX = setUpIsMovingFrom.X;
            InitialPY = setUpIsMovingFrom.Y;
            Mouse.Capture(AssociatedObject);
            ResizableTransparentWindowBehavior.DisableResizableBehavior(AssociatedObject);
            DraggableFrameworkElementBehavior.SetIsEnabledDraggableDescendants(
                AssociatedObject, TypeControlUnderMouseAvoidingMove, false);
            IsDragging = true;
        }
コード例 #3
0
        // TODO: change by left mouse up or check left button
        private void AssociatedObject_MouseUp(object sender, MouseButtonEventArgs e)
        {
            if (!IsDockableEnabled)
            {
                return;
            }

            if (IsDockable)
            {
                AttachToDock(DockingDock, DockingScreen);
            }
            if (IsUndocking)
            {
                EndUndocking();
                DraggableFrameworkElementBehavior.SetIsEnabledDraggableDescendants(AssociatedObject, typeof(WidgetControl), true);
            }
        }
コード例 #4
0
        private void AssociatedObject_MouseDown(object sender, MouseButtonEventArgs e)
        {
#if alldbg || dbg
            DesktopPanelTool.Lib.Debug.WriteLine($"mouse down");
#endif
            if (IsDocked && e.ChangedButton == MouseButton.Left && !IsPined && AcceptableUndockingStartPoint())
            {
#if alldbg || dbg
                DesktopPanelTool.Lib.Debug.WriteLine($"start undocking");
#endif
                DraggableFrameworkElementBehavior.SetIsEnabledDraggableDescendants(AssociatedObject, typeof(WidgetControl), false);
                IsUndocking = true;
                POINT p = new POINT();
                GetCursorPos(ref p);
                InitialUndockingPosition = new Point(p.X, p.Y);
                Mouse.Capture(AssociatedObject);
            }
        }