Beispiel #1
0
        private void OnDragStarted()
        {
            if (!(this.VisualParent is SplitContainer splitContainer))
            {
                return;
            }

            var adornerLayer = AdornerLayer.GetAdornerLayer(splitContainer);

            if (adornerLayer == null)
            {
                return;
            }

            resizeData = new ResizeData
            {
                BeforeElementSize = Orientation == Orientation.Horizontal
                    ? LayoutInformation.GetLayoutSlot(BeforeElement).Height
                    : LayoutInformation.GetLayoutSlot(BeforeElement).Width,
                AfterElementSize = Orientation == Orientation.Horizontal
                    ? LayoutInformation.GetLayoutSlot(AfterElement).Height
                    : LayoutInformation.GetLayoutSlot(AfterElement).Width,

                MinOffset      = resizeData.BeforeElementSize - 22.0,
                MaxOffset      = resizeData.AfterElementSize - 22.0,
                PreviewAdorner = new SplitPreviewAdorner(this)
            };

            adornerLayer.Add(this.resizeData.PreviewAdorner);
        }
        private void OnDragCompleted(DragCompletedEventArgs e)
        {
            if (resizeData != null)
            {
                if (!e.Canceled)
                {
                    switch (resizeData.SplitterDockSide)
                    {
                    case Dock.Right:
                        resizeData.Parent.ContentSize = Math.Max(this.resizeData.Parent.ContentSize - this.resizeData.PreviewAdorner.OffsetX, 15.0);
                        break;

                    case Dock.Left:
                        resizeData.Parent.ContentSize = Math.Max(this.resizeData.Parent.ContentSize + this.resizeData.PreviewAdorner.OffsetX, 15.0);
                        break;

                    case Dock.Top:
                        resizeData.Parent.ContentSize = Math.Max(this.resizeData.Parent.ContentSize + this.resizeData.PreviewAdorner.OffsetY, 15.0);
                        break;

                    default:
                        resizeData.Parent.ContentSize = Math.Max(this.resizeData.Parent.ContentSize - this.resizeData.PreviewAdorner.OffsetY, 15.0);
                        break;
                    }
                }

                if (VisualTreeHelper.GetParent(resizeData.PreviewAdorner) is AdornerLayer adornerLayer)
                {
                    adornerLayer.Remove(resizeData.PreviewAdorner);
                }

                resizeData = null;
            }
        }
Beispiel #3
0
        private void OnDragCompleted(DragCompletedEventArgs e)
        {
            if (resizeData != null)
            {
                if (!e.Canceled)
                {
                    Size beforeElementSize = SplitContainer.GetWorkingSize(BeforeElement);
                    Size afterElementSize  = SplitContainer.GetWorkingSize(AfterElement);

                    double totalElementSize          = beforeElementSize.Height + afterElementSize.Height;
                    double originalElementsTotalSize = this.resizeData.BeforeElementSize + resizeData.AfterElementSize;

                    if (Orientation == Orientation.Horizontal)
                    {
                        double delta = resizeData.PreviewAdorner.OffsetY / originalElementsTotalSize * totalElementSize;
                        SplitContainer.SetWorkingSize(BeforeElement, new Size(beforeElementSize.Width, beforeElementSize.Height + delta));
                        SplitContainer.SetWorkingSize(AfterElement, new Size(afterElementSize.Width, afterElementSize.Height - delta));
                    }
                    else
                    {
                        double delta = this.resizeData.PreviewAdorner.OffsetX / originalElementsTotalSize * totalElementSize;
                        SplitContainer.SetWorkingSize(BeforeElement, new Size(beforeElementSize.Width + delta, beforeElementSize.Height));
                        SplitContainer.SetWorkingSize(AfterElement, new Size(afterElementSize.Width - delta, afterElementSize.Height));
                    }
                }


                if (VisualTreeHelper.GetParent(resizeData.PreviewAdorner) is AdornerLayer adornerLayer)
                {
                    adornerLayer.Remove(resizeData.PreviewAdorner);
                }

                resizeData = null;
            }
        }
Beispiel #4
0
        // Initialize the data needed for resizing
        private void InitializeData(bool ShowsPreview)
        {
            Grid grid = Parent as Grid;

            // If not in a grid or can't resize, do nothing
            if (grid != null)
            {
                // Setup data used for resizing
                _resizeData                 = new ResizeData();
                _resizeData.Grid            = grid;
                _resizeData.ShowsPreview    = ShowsPreview;
                _resizeData.ResizeDirection = GetEffectiveResizeDirection();
                _resizeData.ResizeBehavior  = GetEffectiveResizeBehavior(_resizeData.ResizeDirection);
                _resizeData.SplitterLength  = Math.Min(ActualWidth, ActualHeight);

                // Store the rows and columns to resize on drag events
                if (!SetupDefinitionsToResize())
                {
                    // Unable to resize, clear data
                    _resizeData = null;
                    return;
                }

                // Setup the preview in the adorner if ShowsPreview is true
                SetupPreview();
            }
        }
        private void GetDeltaConstraints(out double minDelta, out double maxDelta)
        {
            double actualLength1 = this.GetActualLength(this._resizeData.Definition1);
            double minSizeValue1 = ResizeData.UserMinSizeValueCache(this._resizeData.Definition1);
            double maxSizeValue1 = ResizeData.UserMaxSizeValueCache(this._resizeData.Definition1);
            double actualLength2 = this.GetActualLength(this._resizeData.Definition2);
            double minSizeValue2 = ResizeData.UserMinSizeValueCache(this._resizeData.Definition2);
            double maxSizeValue2 = ResizeData.UserMaxSizeValueCache(this._resizeData.Definition2);

            if (this._resizeData.SplitterIndex == this._resizeData.Definition1Index)
            {
                minSizeValue1 = Math.Max(minSizeValue1, this._resizeData.SplitterLength);
            }
            else if (this._resizeData.SplitterIndex == this._resizeData.Definition2Index)
            {
                minSizeValue2 = Math.Max(minSizeValue2, this._resizeData.SplitterLength);
            }
            if (this._resizeData.SplitBehavior == SplitBehavior.Split)
            {
                minDelta = -Math.Min((double)(actualLength1 - minSizeValue1), (double)(maxSizeValue2 - actualLength2));
                maxDelta = Math.Min((double)(maxSizeValue1 - actualLength1), (double)(actualLength2 - minSizeValue2));
            }
            else if (this._resizeData.SplitBehavior == SplitBehavior.Resize1)
            {
                minDelta = minSizeValue1 - actualLength1;
                maxDelta = maxSizeValue1 - actualLength1;
            }
            else
            {
                minDelta = actualLength2 - maxSizeValue2;
                maxDelta = actualLength2 - minSizeValue2;
            }
        }
        private void InitializeData(bool ShowsPreview)
        {
            _resizeData                = new ResizeData();
            _resizeData.Panel          = Owner;
            _resizeData.ShowsPreview   = ShowsPreview;
            _resizeData.SplitterLength = Math.Min(ActualWidth, ActualHeight);
            _resizeData.SplitterIndex  = SplitterIndex;

            SetupDefinitionsToResize();
            SetupPreview();
        }
        private bool SetupDefinitionsToResize()
        {
            int num4 = (int)base.GetValue((this._resizeData.ResizeDirection == GridResizeDirection.Columns) ? Grid.ColumnSpanProperty : Grid.RowSpanProperty);

            if (num4 == 1)
            {
                int num2;
                int num3;
                int num = (int)base.GetValue((this._resizeData.ResizeDirection == GridResizeDirection.Columns) ? Grid.ColumnProperty : Grid.RowProperty);
                switch (this._resizeData.ResizeBehavior)
                {
                case GridResizeBehavior.CurrentAndNext:
                    num2 = num;
                    num3 = num + 1;
                    break;

                case GridResizeBehavior.PreviousAndCurrent:
                    num2 = num - 1;
                    num3 = num;
                    break;

                default:
                    num2 = num - 1;
                    num3 = num + 1;
                    break;
                }
                int num5 = (this._resizeData.ResizeDirection == GridResizeDirection.Columns) ? this._resizeData.Grid.ColumnDefinitions.Count : this._resizeData.Grid.RowDefinitions.Count;
                if ((num2 >= 0) && (num3 < num5))
                {
                    this._resizeData.SplitterIndex                   = num;
                    this._resizeData.Definition1Index                = num2;
                    this._resizeData.Definition1                     = GetGridDefinition(this._resizeData.Grid, num2, this._resizeData.ResizeDirection);
                    this._resizeData.OriginalDefinition1Length       = ResizeData.UserSizeValueCache(this._resizeData.Definition1);
                    this._resizeData.OriginalDefinition1ActualLength = this.GetActualLength(this._resizeData.Definition1);
                    this._resizeData.Definition2Index                = num3;
                    this._resizeData.Definition2                     = GetGridDefinition(this._resizeData.Grid, num3, this._resizeData.ResizeDirection);
                    this._resizeData.OriginalDefinition2Length       = ResizeData.UserSizeValueCache(this._resizeData.Definition2);
                    this._resizeData.OriginalDefinition2ActualLength = this.GetActualLength(this._resizeData.Definition2);
                    bool flag  = IsStar(this._resizeData.Definition1);
                    bool flag2 = IsStar(this._resizeData.Definition2);
                    if (flag && flag2)
                    {
                        this._resizeData.SplitBehavior = SplitBehavior.Split;
                    }
                    else
                    {
                        this._resizeData.SplitBehavior = !flag ? SplitBehavior.Resize1 : SplitBehavior.Resize2;
                    }
                    return(true);
                }
            }
            return(false);
        }
Beispiel #8
0
 /// <summary>
 /// Cancel the resize operation in progress
 /// </summary>
 private void CancelResize()
 {
     if (_resizeData.ShowsPreview)
     {
         RemovePreviewControl();
     }
     else
     {
         SetLengths(_resizeData.OriginalDefinition1ActualLength, _resizeData.OriginalDefinition2ActualLength);
     }
     _resizeData = null;
 }
 private void OnDragCompleted(DragCompletedEventArgs e)
 {
     if (this._resizeData != null)
     {
         if (this._resizeData.ShowsPreview)
         {
             this.MoveSplitter(this._resizeData.Adorner.OffsetX, this._resizeData.Adorner.OffsetY);
             this.RemovePreviewAdorner();
         }
         this._resizeData = null;
     }
 }
        private void CancelResize()
        {
            DependencyObject parent = base.Parent;

            if (this._resizeData.ShowsPreview)
            {
                this.RemovePreviewAdorner();
            }
            else
            {
                SetDefinitionLength(this._resizeData.Definition1, this._resizeData.OriginalDefinition1Length);
                SetDefinitionLength(this._resizeData.Definition2, this._resizeData.OriginalDefinition2Length);
            }
            this._resizeData = null;
        }
Beispiel #11
0
        /// <summary>
        /// Initialize the resize data and move the splitter by the specified amount
        /// </summary>
        /// <param name="horizontalChange">Horizontal amount to move the splitter</param>
        /// <param name="verticalChange">Vertical amount to move the splitter</param>
        /// <returns></returns>
        internal bool InitializeAndMoveSplitter(double horizontalChange, double verticalChange)
        {
            // resizing directly is not allowed if there is a mouse initiated resize operation in progress
            if (_resizeData != null)
            {
                return(false);
            }

            InitializeData(false);
            if (_resizeData == null)
            {
                return(false);
            }

            MoveSplitter(horizontalChange, verticalChange);
            _resizeData = null;
            return(true);
        }
 internal bool KeyboardMoveSplitter(double horizontalChange, double verticalChange)
 {
     if (this._resizeData != null)
     {
         return(false);
     }
     this.InitializeData(false);
     if (this._resizeData == null)
     {
         return(false);
     }
     if (base.FlowDirection == FlowDirection.RightToLeft)
     {
         horizontalChange = -horizontalChange;
     }
     this.MoveSplitter(horizontalChange, verticalChange);
     this._resizeData = null;
     return(true);
 }
Beispiel #13
0
        protected override void OnPointerReleased(PointerRoutedEventArgs e)
        {
            base.OnPointerReleased(e);
            if (_dragging)
            {
                _dragging = false;
                ReleasePointerCapture(e.Pointer);

                if (_resizeData != null)
                {
                    Canvas.SetZIndex(_resizeData.ResizedTgt, 0);
                    MoveSplitter(_resizeData.Preview.OffsetX, _resizeData.Preview.OffsetY, false);
                    RemovePreview();
                    _resizeData.ClearReferences();
                    _resizeData = null;
                }
                ChangeVisualState();
                OnLayoutChangeEnded();
            }
        }
Beispiel #14
0
 /// <summary>
 /// Handle the drag completed event to commit or cancel the resize operation in progress
 /// </summary>
 internal void DragValidator_DragCompletedEvent(object sender, DragCompletedEventArgs e)
 {
     if (_resizeData != null)
     {
         if (e.Canceled)
         {
             CancelResize();
         }
         else
         {
             if (_resizeData.ShowsPreview)
             {
                 MoveSplitter(_resizeData.PreviewControl.OffsetX, _resizeData.PreviewControl.OffsetY);
                 RemovePreviewControl();
             }
         }
         _resizeData = null;
     }
     ChangeVisualState();
 }
Beispiel #15
0
        private void InitializeData(bool ShowsPreview)
        {
            Grid parent = base.Parent as Grid;

            if (parent != null)
            {
                this._resizeData                 = new ResizeData();
                this._resizeData.Grid            = parent;
                this._resizeData.ShowsPreview    = ShowsPreview;
                this._resizeData.ResizeDirection = this.GetEffectiveResizeDirection();
                this._resizeData.SplitterLength  = Math.Min(base.ActualWidth, base.ActualHeight);
                if (!this.SetupDefinitionsToResize())
                {
                    this._resizeData = null;
                }
                else
                {
                    this.SetupPreview();
                }
            }
        }
        /// <summary>
        /// Initialize the resizeData object to hold the information for the
        /// resize operation in progress.
        /// </summary>
        /// <param name="showsPreview">
        /// Whether or not the preview should be shown.
        /// </param>
        private void InitializeData(bool showsPreview)
        {
            Grid parent = Parent as Grid;

            if (parent != null)
            {
                ResizeDataInternal                 = new ResizeData();
                ResizeDataInternal.Grid            = parent;
                ResizeDataInternal.ShowsPreview    = showsPreview;
                ResizeDataInternal.ResizeDirection = GetEffectiveResizeDirection();
                ResizeDataInternal.ResizeBehavior  = GetEffectiveResizeBehavior(ResizeDataInternal.ResizeDirection);
                ResizeDataInternal.SplitterLength  = Math.Min(ActualWidth, ActualHeight);
                if (!SetupDefinitionsToResize())
                {
                    ResizeDataInternal = null;
                }
                else
                {
                    SetupPreview();
                }
            }
        }
        private void OnDragStarted()
        {
            AdornerLayer adornerLayer = AdornerLayer.GetAdornerLayer(ResizeControl);

            if (adornerLayer != null)
            {
                resizeData = new ResizeData
                {
                    SplitterDockSide = DockCanvas.GetDock(ResizeControl),
                    Parent           = ResizeControl
                };

                switch (resizeData.SplitterDockSide)
                {
                case Dock.Left:
                    resizeData.MinOffset = 15.0 - ResizeControl.ContentSize;
                    resizeData.MaxOffset = canvas.ClientBounds.Width - 32.0;
                    break;

                case Dock.Top:
                    resizeData.MinOffset = 15.0 - ResizeControl.ContentSize;
                    resizeData.MaxOffset = canvas.ClientBounds.Height - 32.0;
                    break;

                case Dock.Right:
                    resizeData.MaxOffset = ResizeControl.ContentSize - 15.0;
                    resizeData.MinOffset = 32.0 - canvas.ClientBounds.Width;
                    break;

                case Dock.Bottom:
                    resizeData.MaxOffset = ResizeControl.ContentSize - 15.0;
                    resizeData.MinOffset = 32.0 - canvas.ClientBounds.Height;
                    break;
                }

                resizeData.PreviewAdorner = new SplitPreviewAdorner(this);
                adornerLayer.Add(resizeData.PreviewAdorner);
            }
        }
Beispiel #18
0
        /// <summary>
        /// Initialize the resizeData object to hold the information for the resize operation in progress
        /// </summary>
        /// <param name="showsPreview">Whether or not the preview should be shown</param>
        private void InitializeData(bool showsPreview)
        {
            Grid parent = base.Parent as Grid;

            if (parent != null)
            {
                _resizeData                 = new ResizeData();
                _resizeData.Grid            = parent;
                _resizeData.ShowsPreview    = showsPreview;
                _resizeData.ResizeDirection = GetEffectiveResizeDirection();
                _resizeData.ResizeBehavior  = GetEffectiveResizeBehavior(_resizeData.ResizeDirection);
                _resizeData.SplitterLength  = Math.Min(base.ActualWidth, base.ActualHeight);
                if (!SetupDefinitionsToResize())
                {
                    _resizeData = null;
                }
                else
                {
                    SetupPreview();
                }
            }
        }
Beispiel #19
0
        /// <summary>
        /// Called by keyboard event handler to move the splitter if allowed
        /// </summary>
        /// <param name="horizontalChange">Horizontal amount to move the splitter</param>
        /// <param name="verticalChange">Vertical amount to move the splitter</param>
        /// <returns></returns>
        private bool KeyboardMoveSplitter(double horizontalChange, double verticalChange)
        {
            if (HasKeyboardFocus && this.IsEnabled)
            {
                // Keyboard resizing is not allowed if there is a mouse initiated resize operation in progress
                if (_resizeData != null)
                {
                    return(false);
                }

                InitializeData(false);
                if (_resizeData == null)
                {
                    return(false);
                }

                MoveSplitter(horizontalChange, verticalChange);
                _resizeData = null;
                return(true);
            }
            return(false);
        }
Beispiel #20
0
 bool KeyboardMoveSplitter(double p_horChange, double p_verChange)
 {
     if (FlowDirection == FlowDirection.RightToLeft)
     {
         p_horChange *= -1.0;
     }
     if (HasKeyboardFocus && IsEnabled)
     {
         if (_resizeData != null)
         {
             return(false);
         }
         InitializeData();
         if (_resizeData == null)
         {
             return(false);
         }
         MoveSplitter(p_horChange, p_verChange, false);
         _resizeData = null;
         return(true);
     }
     return(false);
 }
Beispiel #21
0
 /// <summary> 
 /// Cancel the resize operation in progress 
 /// </summary>
 private void CancelResize() 
 {
     if (_resizeData.ShowsPreview)
     { 
         RemovePreviewControl();
     }
     else 
     { 
         SetLengths(_resizeData.OriginalDefinition1ActualLength, _resizeData.OriginalDefinition2ActualLength);
     } 
     _resizeData = null;
 }
Beispiel #22
0
        /// <summary> 
        /// Called by keyboard event handler to move the splitter if allowed 
        /// </summary>
        /// <param name="horizontalChange">Horizontal amount to move the splitter</param> 
        /// <param name="verticalChange">Vertical amount to move the splitter</param>
        /// <returns></returns>
        private bool KeyboardMoveSplitter(double horizontalChange, double verticalChange) 
        {
            if (HasKeyboardFocus && this.IsEnabled)
            { 
                // Keyboard resizing is not allowed if there is a mouse initiated resize operation in progress 
                if (_resizeData != null)
                { 
                    return false;
                }
 
                InitializeData(false);
                if (_resizeData == null)
                { 
                    return false; 
                }
 
                MoveSplitter(horizontalChange, verticalChange);
                _resizeData = null;
                return true; 
            }
            return false;
        } 
Beispiel #23
0
 /// <summary> 
 /// Initialize the resizeData object to hold the information for the resize operation in progress 
 /// </summary>
 /// <param name="showsPreview">Whether or not the preview should be shown</param> 
 private void InitializeData(bool showsPreview)
 {
     Grid parent = base.Parent as Grid; 
     if (parent != null)
     {
         _resizeData = new ResizeData(); 
         _resizeData.Grid = parent; 
         _resizeData.ShowsPreview = showsPreview;
         _resizeData.ResizeDirection = GetEffectiveResizeDirection(); 
         _resizeData.ResizeBehavior = GetEffectiveResizeBehavior(_resizeData.ResizeDirection);
         _resizeData.SplitterLength = Math.Min(base.ActualWidth, base.ActualHeight);
         if (!SetupDefinitionsToResize()) 
         {
             _resizeData = null;
         } 
         else 
         {
             SetupPreview(); 
         }
     }
 } 
Beispiel #24
0
        /// <summary>
        /// 通过事件参数设置开始移动的相关信息
        /// </summary>
        void InitializeData()
        {
            Panel parent = Parent as Panel;

            if (parent == null)
            {
                return;
            }

            _resizeData            = new ResizeData();
            _resizeData.ResizedTgt = Owner;
            _resizeData.Placement  = Placement ?? ItemPlacement.Left;

            Win win;
            FrameworkElement affectedTgt = null;

            if (Owner is Tabs tabs)
            {
                win = tabs.OwnWin;
                if (tabs.OwnWinItem != null)
                {
                    for (int i = tabs.OwnWinItem.Items.IndexOf(tabs) - 1; i > -1; i--)
                    {
                        var brother = tabs.OwnWinItem.Items[i];
                        if (brother.Visibility == Visibility.Visible)
                        {
                            affectedTgt = brother;
                            break;
                        }
                    }
                }
            }
            else if (Owner is Pane wi)
            {
                win = wi.OwnWin;
                if (wi.Parent is TabItemPanel pnl && pnl.Owner != null)
                {
                    for (int i = pnl.Owner.Items.IndexOf(wi) - 1; i > -1; i--)
                    {
                        var brother = pnl.Owner.Items[i];
                        if (brother.Visibility == Visibility.Visible)
                        {
                            affectedTgt = brother;
                            break;
                        }
                    }
                }
            }
            else
            {
                throw new Exception("GridResizer只放在Tabs或Pane中");
            }

            var center = win.CenterItem;

            _resizeData.MinSize = new Size(center.MinWidth, center.MinHeight);
            _resizeData.MaxSize = new Size(center.ActualWidth, center.ActualHeight);

            if (affectedTgt != null)
            {
                _resizeData.AffectedTgt    = affectedTgt;
                _resizeData.ResizeBehavior = ResizeBehavior.Split;
            }
            _resizeData.Init();
        }
Beispiel #25
0
 /// <summary> 
 /// Handle the drag completed event to commit or cancel the resize operation in progress
 /// </summary>
 internal void DragValidator_DragCompletedEvent(object sender, DragCompletedEventArgs e) 
 { 
     if (_resizeData != null)
     { 
         if (e.Canceled)
         {
             if (_resizeData.ShowsPreview) 
             {
                 RemovePreviewControl();
             } 
             CancelResize(); 
         }
         else 
         {
             if (_resizeData.ShowsPreview)
             { 
                 MoveSplitter(_resizeData.PreviewControl.OffsetX, _resizeData.PreviewControl.OffsetY);
                 RemovePreviewControl();
             } 
         } 
         _resizeData = null;
     } 
     ChangeVisualState();
 }
Beispiel #26
0
        /// <summary>
        /// Initialize the resize data and move the splitter by the specified amount
        /// </summary>
        /// <param name="horizontalChange">Horizontal amount to move the splitter</param>
        /// <param name="verticalChange">Vertical amount to move the splitter</param>
        /// <returns></returns>
        internal bool InitializeAndMoveSplitter(double horizontalChange, double verticalChange)
        {
            // resizing directly is not allowed if there is a mouse initiated resize operation in progress
            if (_resizeData != null)
            {
                return false;
            }

            InitializeData(false);
            if (_resizeData == null)
            {
                return false;
            }

            MoveSplitter(horizontalChange, verticalChange);
            _resizeData = null;
            return true;
        }
 private static bool IsStar(DefinitionBase definition)
 {
     return(ResizeData.UserSizeValueCache(definition).IsStar);
 }
Beispiel #28
0
 void CancelResize()
 {
     RemovePreview();
     _resizeData.CancelResize();
     _resizeData = null;
 }
Beispiel #29
0
        // Initialize the data needed for resizing
        private void InitializeData(bool ShowsPreview)
        {
            Grid grid = Parent as Grid;

            // If not in a grid or can't resize, do nothing
            if (grid != null)
            {
                // Setup data used for resizing
                _resizeData = new ResizeData();
                _resizeData.Grid = grid;
                _resizeData.ShowsPreview = ShowsPreview;
                _resizeData.ResizeDirection = GetEffectiveResizeDirection();
                _resizeData.ResizeBehavior = GetEffectiveResizeBehavior(_resizeData.ResizeDirection);
                _resizeData.SplitterLength = Math.Min(ActualWidth, ActualHeight);

                // Store the rows and columns to resize on drag events
                if (!SetupDefinitionsToResize())
                {
                    // Unable to resize, clear data
                    _resizeData = null;
                    return;
                }

                // Setup the preview in the adorner if ShowsPreview is true
                SetupPreview();
            }
        }
Beispiel #30
0
 /// <summary>
 /// Initialize the resizeData object to hold the information for the
 /// resize operation in progress.
 /// </summary>
 /// <param name="showsPreview">
 /// Whether or not the preview should be shown.
 /// </param>
 private void InitializeData(bool showsPreview)
 {
     Grid parent = Parent as Grid;
     if (parent != null)
     {
         ResizeDataInternal = new ResizeData();
         ResizeDataInternal.Grid = parent;
         ResizeDataInternal.ShowsPreview = showsPreview;
         ResizeDataInternal.ResizeDirection = GetEffectiveResizeDirection();
         ResizeDataInternal.ResizeBehavior = GetEffectiveResizeBehavior(ResizeDataInternal.ResizeDirection);
         ResizeDataInternal.SplitterLength = Math.Min(ActualWidth, ActualHeight);
         if (!SetupDefinitionsToResize())
         {
             ResizeDataInternal = null;
         }
         else
         {
             SetupPreview();
         }
     }
 }