private void ThumbDragDelta(object sender, DragDeltaEventArgs e)
 {
     if (Thumb.IsDragging)
     {
         if (Value > Max) Value = Max;
     }
 }
コード例 #2
0
 private void GridSplitterOnDragDeltaHandler(object sender, DragDeltaEventArgs e)
 {
     UpdateAdornersPositions();
 }
コード例 #3
0
        void ResizeControl_DragDelta(object sender, DragDeltaEventArgs e)
        {
            DiagramElement DiagramElement = this.DataContext as DiagramElement;
            DiagramCanvas  designer       = VisualTreeHelper.GetParent(DiagramElement) as DiagramCanvas;

            if (DiagramElement != null && designer != null && DiagramElement.IsSelected)
            {
                double minLeft, minTop, minDeltaHorizontal, minDeltaVertical;
                double dragDeltaVertical, dragDeltaHorizontal, scale;

                IEnumerable <DiagramElement> selectedDiagramElements = designer.SelectionService.CurrentSelection.OfType <DiagramElement>();

                CalculateDragLimits(selectedDiagramElements, out minLeft, out minTop,
                                    out minDeltaHorizontal, out minDeltaVertical);

                foreach (DiagramElement item in selectedDiagramElements)
                {
                    if (item != null && item.ParentID == Guid.Empty)
                    {
                        switch (base.VerticalAlignment)
                        {
                        case VerticalAlignment.Bottom:
                            dragDeltaVertical = Math.Min(-e.VerticalChange, minDeltaVertical);
                            scale             = (item.ActualHeight - dragDeltaVertical) / item.ActualHeight;
                            DragBottom(scale, item, designer.SelectionService);
                            break;

                        case VerticalAlignment.Top:
                            double top = Canvas.GetTop(item);
                            dragDeltaVertical = Math.Min(Math.Max(-minTop, e.VerticalChange), minDeltaVertical);
                            scale             = (item.ActualHeight - dragDeltaVertical) / item.ActualHeight;
                            DragTop(scale, item, designer.SelectionService);
                            break;

                        default:
                            break;
                        }

                        switch (base.HorizontalAlignment)
                        {
                        case HorizontalAlignment.Left:
                            double left = Canvas.GetLeft(item);
                            dragDeltaHorizontal = Math.Min(Math.Max(-minLeft, e.HorizontalChange), minDeltaHorizontal);
                            scale = (item.ActualWidth - dragDeltaHorizontal) / item.ActualWidth;
                            DragLeft(scale, item, designer.SelectionService);
                            break;

                        case HorizontalAlignment.Right:
                            dragDeltaHorizontal = Math.Min(-e.HorizontalChange, minDeltaHorizontal);
                            scale = (item.ActualWidth - dragDeltaHorizontal) / item.ActualWidth;
                            DragRight(scale, item, designer.SelectionService);
                            break;

                        default:
                            break;
                        }
                    }
                }
                e.Handled = true;
            }
        }
コード例 #4
0
 protected override void OnThumbDragDelta(DragDeltaEventArgs e)
 {
     base.OnThumbDragDelta(e);
     this.ShowCurrentValue();
 }
コード例 #5
0
 private void BottomSizeOnDragDelta(object sender, DragDeltaEventArgs e)
 {
     Height = Math.Max(Height + Screen.VerticalPixelToDpi(this, e.VerticalChange), MinHeight);
 }
コード例 #6
0
 private void OnDragDelta(object sender, DragDeltaEventArgs e)
 {
     this.isDragging = true;
     this.owner.OnButtonDragDelta(this, e);
 }
コード例 #7
0
 void strip_DragDelta(object sender, DragDeltaEventArgs e)
 {
     MoveStop(newStop, startOffset, e);
     e.Handled = true;
 }
コード例 #8
0
        private void Thumb_DragDelta(object sender, DragDeltaEventArgs e)
        {
            GanttChartView ganttChartView;
            ScrollViewer   scrollViewer;
            GanttChartItem dataContext = this.Thumb.DataContext as GanttChartItem;

            if (dataContext != null)
            {
                ganttChartView = dataContext.GanttChartView as GanttChartView;
                if ((ganttChartView != null) && !dataContext.HasChildren)
                {
                    this.horizontalChange = e.HorizontalChange;
                    scrollViewer          = ganttChartView.ScrollViewer;
                    if (!this.isDuringInternalScrollOperation)
                    {
                        double x          = this.originalHorizontalPosition + this.horizontalChange;
                        double itemHeight = ganttChartView.ItemHeight;
                        Point  p          = new Point(x, 0.0);
                        this.isDuringInternalScrollOperation = true;
                        base.Dispatcher.BeginInvoke((Action)(() =>
                        {
                            double previousHorizontalOffset = scrollViewer.HorizontalOffset;
                            ScrollContentPresenter visual = ganttChartView.ScrollContentPresenter;
                            if ((scrollViewer != null) && (visual != null))
                            {
                                try
                                {
                                    p = this.TransformToVisual(visual).Transform(p);
                                    if (p.X < itemHeight)
                                    {
                                        scrollViewer.ScrollToHorizontalOffset(scrollViewer.HorizontalOffset - itemHeight);
                                    }
                                    if (p.X > (scrollViewer.ViewportWidth - itemHeight))
                                    {
                                        scrollViewer.ScrollToHorizontalOffset(scrollViewer.HorizontalOffset + itemHeight);
                                    }
                                }
                                catch
                                {
                                }
                            }
                            this.Dispatcher.BeginInvoke((Action)(() =>
                            {
                                this.originalHorizontalPosition -= scrollViewer.HorizontalOffset - previousHorizontalOffset;
                                this.isDuringInternalScrollOperation = false;
                            }));
                        }));
                    }
                    switch (this.Role)
                    {
                    case DragTaskThumbRole.UpdateFinish:
                        if (!dataContext.IsMilestone)
                        {
                            double num3 = ganttChartView.GetPosition(dataContext.Finish) + e.HorizontalChange;
                            dataContext.Finish = ganttChartView.GetPreviousVisibleWorkingTime(ganttChartView.GetUpdateScaleTime(ganttChartView.GetDateTime(num3)));
                            return;
                        }
                        return;

                    case DragTaskThumbRole.UpdateCompletedFinish:
                        if (!dataContext.IsMilestone)
                        {
                            double num4 = ganttChartView.GetPosition(dataContext.CompletedFinish) + e.HorizontalChange;
                            dataContext.CompletedFinish = ganttChartView.GetPreviousVisibleWorkingTime(ganttChartView.GetUpdateScaleTime(ganttChartView.GetDateTime(num4)));
                            return;
                        }
                        return;
                    }
                    double   position        = ganttChartView.GetPosition(dataContext.Start) + e.HorizontalChange;
                    TimeSpan effort          = dataContext.Effort;
                    TimeSpan completedEffort = dataContext.CompletedEffort;
                    dataContext.Start = ganttChartView.GetNextVisibleWorkingTime(ganttChartView.GetUpdateScaleTime(ganttChartView.GetDateTime(position)));
                    if (!dataContext.IsMilestone)
                    {
                        dataContext.Effort          = effort;
                        dataContext.CompletedEffort = completedEffort;
                    }
                }
            }
        }
コード例 #9
0
ファイル: EdgeType.cs プロジェクト: seva-ask/qreal
 private void EndPortDragDelta(object sender, DragDeltaEventArgs e)
 {
     MoveEndPort(e.HorizontalChange, e.VerticalChange);
 }
コード例 #10
0
        private static void SizeThumbOnDragDelta(object sender, DragDeltaEventArgs dragDeltaEventArgs)
        {
            var thumb        = ((Thumb)sender);
            var dragablzItem = thumb.VisualTreeAncestory().OfType <DragablzItem>().FirstOrDefault();

            if (dragablzItem == null)
            {
                return;
            }

            var sizeGrip = (SizeGrip)thumb.GetValue(SizeGripProperty);
            var width    = dragablzItem.ActualWidth;
            var height   = dragablzItem.ActualHeight;
            var x        = dragablzItem.X;
            var y        = dragablzItem.Y;

            switch (sizeGrip)
            {
            case SizeGrip.NotApplicable:
                break;

            case SizeGrip.Left:
                width += -dragDeltaEventArgs.HorizontalChange;
                x     += dragDeltaEventArgs.HorizontalChange;
                break;

            case SizeGrip.TopLeft:
                width  += -dragDeltaEventArgs.HorizontalChange;
                height += -dragDeltaEventArgs.VerticalChange;
                x      += dragDeltaEventArgs.HorizontalChange;
                y      += dragDeltaEventArgs.VerticalChange;
                break;

            case SizeGrip.Top:
                height += -dragDeltaEventArgs.VerticalChange;
                y      += dragDeltaEventArgs.VerticalChange;
                break;

            case SizeGrip.TopRight:
                height += -dragDeltaEventArgs.VerticalChange;
                width  += dragDeltaEventArgs.HorizontalChange;
                y      += dragDeltaEventArgs.VerticalChange;
                break;

            case SizeGrip.Right:
                width += dragDeltaEventArgs.HorizontalChange;
                break;

            case SizeGrip.BottomRight:
                width  += dragDeltaEventArgs.HorizontalChange;
                height += dragDeltaEventArgs.VerticalChange;
                break;

            case SizeGrip.Bottom:
                height += dragDeltaEventArgs.VerticalChange;
                break;

            case SizeGrip.BottomLeft:
                height += dragDeltaEventArgs.VerticalChange;
                width  += -dragDeltaEventArgs.HorizontalChange;
                x      += dragDeltaEventArgs.HorizontalChange;
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
            dragablzItem.SetCurrentValue(XProperty, x);
            dragablzItem.SetCurrentValue(YProperty, y);
            dragablzItem.SetCurrentValue(WidthProperty, Math.Max(width, thumb.DesiredSize.Width));
            dragablzItem.SetCurrentValue(HeightProperty, Math.Max(height, thumb.DesiredSize.Height));
        }
コード例 #11
0
 void control_DragDelta(object sender, DragDeltaEventArgs e)
 {
     InvalidateArrange();
 }
コード例 #12
0
ファイル: DragThumb.cs プロジェクト: DavidAlt/ITG
        void DragThumb_DragDelta(object sender, DragDeltaEventArgs e)
        {
            // Set up the data sources we'll need to work with
            DesignerItemBaseVM sourceItem = this.DataContext as DesignerItemBaseVM;
            DesignerVM         vm         = sourceItem.ParentForm;

            // Make sure something exists and is selected
            if (sourceItem != null && sourceItem.IsSelected)
            {
                // Set up the selected items
                var selectedItems = vm.ActiveTab.SelectedItems;

                double minLeft = double.MaxValue;
                double minTop  = double.MaxValue;

                /*
                 * // if more than one item is selected, treat them as a group -
                 * // when one stops moving, they all do
                 * double TopmostItemTop = vm.Height;
                 * double LeftmostItemLeft = 0;
                 * double RightmostItemLeft = 0;
                 * double BottomMostItemTop = 0;
                 *
                 * if (vm.SelectedItems.Count > 1)
                 * {
                 *  foreach (DesignerItemBaseVM item in selectedItems.OfType<DesignerItemBaseVM>())
                 *  {
                 *
                 *      if (item.Top < TopmostItemTop) TopmostItemTop = item.Top;
                 *      if (item.Left < LeftmostItemLeft) LeftmostItemLeft = item.Left;
                 *      if (item.Top > BottomMostItemTop) BottomMostItemTop = item.Top;
                 *      if (item.Left < RightmostItemLeft) RightmostItemLeft = item.Left;
                 *
                 *  }
                 *  System.Console.WriteLine("Extreme edges: Top({0}), Left({1}), Right({2}), Bottom({3})", TopmostItemTop, LeftmostItemLeft, RightmostItemLeft, BottomMostItemTop);
                 * } */

                foreach (DesignerItemBaseVM item in selectedItems.OfType <DesignerItemBaseVM>())
                {
                    double maxItemLeft = vm.Width - item.Width;
                    double maxItemTop  = vm.Height - item.Height;

                    minLeft = double.IsNaN(item.Left) ? 0 : Math.Min(item.Left, minLeft);
                    minTop  = double.IsNaN(item.Top) ? 0 : Math.Min(item.Top, minTop);


                    double deltaHorizontal = Math.Max(-minLeft, e.HorizontalChange);
                    double deltaVertical   = Math.Max(-minTop, e.VerticalChange);

                    double desiredLeft = item.Left + deltaHorizontal;
                    double desiredTop  = item.Top + deltaVertical;


                    if (desiredLeft > maxItemLeft)
                    {
                        item.Left = maxItemLeft;
                    }
                    else
                    {
                        item.Left += deltaHorizontal;
                    }

                    if (desiredTop > maxItemTop)
                    {
                        item.Top = maxItemTop;
                    }
                    else
                    {
                        item.Top += deltaVertical;
                    }
                }
                e.Handled = true;
            }
        }
コード例 #13
0
ファイル: ComboBox.cs プロジェクト: zalid/Fluent.Ribbon
 // Handles resize vertical drag
 private void OnResizeVerticalDelta(object sender, DragDeltaEventArgs e)
 {
     SetDragHeight(e);
 }
コード例 #14
0
 private void RangeSlider_OnCentralThumbDragDelta(object sender, DragDeltaEventArgs e)
 {
     //TestBlock.Text = "central thumb drag delta";
 }
コード例 #15
0
 private void RangeSlider_OnUpperThumbDragDelta(object sender, DragDeltaEventArgs e)
 {
 }
コード例 #16
0
 private void Center_DragDelta(object sender, DragDeltaEventArgs e)
 {
     X = X + e.HorizontalChange;
     Y = Y + e.VerticalChange;
 }
コード例 #17
0
 double IDragDeltaEventArgsResolver.VerticalChange(DragDeltaEventArgs e) => e.VerticalChange;
コード例 #18
0
 private static void OnDragDelta(object sender, DragDeltaEventArgs e)
 {
     ((SimpleGridSplitter)sender).OnDragDelta(e);
 }
コード例 #19
0
 static void ClassDragDelta(object sender, DragDeltaEventArgs e)
 {
     (sender as GradientSlider).thumb_DragDelta(sender, e);
 }
コード例 #20
0
 private void DragThumb_DragDelta(object sender, DragDeltaEventArgs e)
 {
     NameColumnWidth = Math.Max(0, NameColumnWidth + e.HorizontalChange);
 }
コード例 #21
0
        void thumb_DragDelta(object sender, DragDeltaEventArgs e)
        {
            var stop = (e.OriginalSource as GradientThumb).GradientStop;

            MoveStop(stop, stop.Offset, e);
        }
コード例 #22
0
 /// <summary>
 /// Gets the horizontal change in the <see cref="Thumb"/> position
 /// since the last <see cref="Thumb.DragDelta"/> event.
 /// </summary>
 /// <param name="e">The requested <see cref="DragDeltaEventArgs"/>.</param>
 /// <returns>
 /// The horizontal change in the <see cref="Thumb"/> position
 /// since the last <see cref="Thumb.DragDelta"/> event.
 /// </returns>
 public static double HorizontalChange(this DragDeltaEventArgs e) => Resolver.HorizontalChange(e);
コード例 #23
0
ファイル: ThumbBase.cs プロジェクト: wangws556/duoduogit
 //usually, you should override this method to drag
 protected virtual void OnDragDelta(object sender, DragDeltaEventArgs e)
 {
 }
コード例 #24
0
 /// <summary>
 /// Gets a reference to the object that raised the event.
 /// This is often a template part of a control rather than an element that was declared in your app UI.
 /// </summary>
 /// <param name="e">The requested <see cref="DragDeltaEventArgs"/>.</param>
 /// <returns>The object that raised the event.</returns>
 public static object OriginalSource(this DragDeltaEventArgs e) => Resolver.OriginalSource(e);
コード例 #25
0
 private void RightSizeBarOnDragDelta(object sender, DragDeltaEventArgs e)
 {
     Width = Math.Max(Width + Screen.HorizontalPixelToDpi(this, e.HorizontalChange), MinWidth);
 }
コード例 #26
0
 /// <summary>
 /// Gets the vertical change in the <see cref="Thumb"/> position
 /// since the last <see cref="Thumb.DragDelta"/> event.
 /// </summary>
 /// <param name="e">The requested <see cref="DragDeltaEventArgs"/>.</param>
 /// <returns>
 /// The vertical change in the <see cref="Thumb"/> position
 /// since the last <see cref="Thumb.DragDelta"/> event.
 /// </returns>
 public static double VerticalChange(this DragDeltaEventArgs e) => Resolver.VerticalChange(e);
コード例 #27
0
ファイル: Exception.xaml.cs プロジェクト: XboxChaos/Liberty
 private void headerThumb_DragDelta(object sender, DragDeltaEventArgs e)
 {
     Left = Left + e.HorizontalChange;
     Top  = Top + e.VerticalChange;
 }
コード例 #28
0
 double IDragDeltaEventArgsResolver.HorizontalChange(DragDeltaEventArgs e) => e.HorizontalChange;
コード例 #29
0
 private void DragWidget_DragDelta(object sender, DragDeltaEventArgs e)
 {
     ProcessMove(e);
 }
コード例 #30
0
 object IDragDeltaEventArgsResolver.OriginalSource(DragDeltaEventArgs e) => e.OriginalSource;
コード例 #31
0
ファイル: GridSplitter.cs プロジェクト: dfr0/moon
        /// <summary>
        /// Handle the drag delta event to update the UI for the resize operation in progress
        /// </summary> 
        internal void DragValidator_DragDeltaEvent(object sender, DragDeltaEventArgs e) 
        {
            if (_resizeData != null) 
            {
                double horizontalChange = e.HorizontalChange;
                double verticalChange = e.VerticalChange; 

                if (_resizeData.ShowsPreview)
                { 
                    if (_resizeData.ResizeDirection == GridResizeDirection.Columns) 
                    {
                        _resizeData.PreviewControl.OffsetX = Math.Min(Math.Max(horizontalChange, _resizeData.MinChange), _resizeData.MaxChange); 
                    }
                    else
                    { 
                        _resizeData.PreviewControl.OffsetY = Math.Min(Math.Max(verticalChange, _resizeData.MinChange), _resizeData.MaxChange);
                    }
                } 
                else 
                {
                    MoveSplitter(horizontalChange, verticalChange); 
                }
            }
        } 
コード例 #32
0
 void ChangeHeight(Thumb thumb, DragDeltaEventArgs args)
 {
     Height = Math.Max(Height + args.VerticalChange, thumb.DesiredSize.Height);
 }