ResizingTool
ResizingTool используется для интерактивного изменения размера элемента.
Наследует: DiagramTool
Свойства
protected FrameworkElement AdornedElement { get; set; }
value = resizingTool.AdornedElement
resizingTool.AdornedElement = value
Получает или устанавливает текущий FrameworkElement, который изменяется.
protected Node AdornedNode { get; }
value = resizingTool.AdornedNode
Получает текущий Узел, в котором находится AdornedElement.
public Size CellSize { get; set; }
value = resizingTool.CellSize
resizingTool.CellSize = value
Получает или устанавливает размер ячейки выбранного элемента, так что размер ограничивается кратными размерам ячейки.
protected FrameworkElement Handle { get; set; }
value = resizingTool.Handle
resizingTool.Handle = value
Получает или устанавливает текущую ручку изменения размера, которая затягивается.
public Size MaxSize { get; set; }
value = resizingTool.MaxSize
resizingTool.MaxSize = value
Получает или устанавливает максимальный размер выбранного элемента.
public Size MinSize { get; set; }
value = resizingTool.MinSize
resizingTool.MinSize = value
Получает или устанавливает минимальный размер выбранного элемента.
protected Rect OriginalBounds { get; set; }
value = resizingTool.OriginalBounds
resizingTool.OriginalBounds = value
Получает или устанавливает границы в координатах модели AdornedElement, когда пользователь начал изменять размер.
protected Point OriginalLocation { get; set; }
value = resizingTool.OriginalLocation
resizingTool.OriginalLocation = value
Получает или устанавливает местоположение в координатах модели AdornedNode, когда пользователь начал изменять размер.
Методы
public override bool CanStart()
result = resizingTool.CanStart()
ResizingTool может работать, когда есть событие мыши вниз на ручке с изменением размера.
protected virtual Size ComputeCellSize()
result = resizingTool.ComputeCellSize()
Размер должен быть кратным величине, возвращенной этим методом.
Возвращает: CellSize, если только один или оба из его ширины и высоты не являются Double.NaN или нулевыми. Если это так, он использует ширину и/или высоту от узла ResizeCellSize. Но если один или оба из ширины и высоты по-прежнему Double.NaN или ноль, он ищет узел сетки за AdornedNode, тот, который является DragOverSnapEnabled, и использует свой DragOverSnapCellSize. Если он не может найти такой узел сетки, или один или оба из ширины и высоты являются NaN, он использует диаграмму GridSnapCellSize, если диаграмма GridSnapEnabled. Наконец, он по умолчанию 1x1.
protected virtual Size ComputeMaxSize()
result = resizingTool.ComputeMaxSize()
Максимальный размер, который можно эффективно изменить, является минимальным размером MaxSize и FrameworkElement's MaxWidth и MaxHeight.
Возвращает: желаемый максимальный размер при изменении размера
protected virtual Size ComputeMinSize()
result = resizingTool.ComputeMinSize()
Эффективный минимальный размер изменения размеров является максимальным по сравнению с MinSize и FrameworkElement MinWidth и MinHeight.
Возвращает: Желаемый минимальный размер при изменении размера
protected virtual Rect ComputeResize(Point newPoint, Spot spot, Size min, Size max, bool reshape)
result = resizingTool.ComputeResize(newPoint, spot, min, max, reshape)
Если в OriginalBounds и в новой точке есть место, вычислите новый пункт.
- newPoint
- Точка в координатах модели
- spot
- Пятно в прямоугольных границах, за которое тянут ручку
- min
- Вычисленный прямоугольник должен быть по меньшей мере таким же большим, как эти размеры.
- max
- Вычисленный прямоугольник не должен быть больше этих размеров.
- reshape
- Может ли измениться соотношение сторон прямоугольника
public override void DoCancel()
resizingTool.DoCancel()
Восстановите OriginalBounds AdornedElement и остановите этот инструмент.
public override void DoDeactivate()
resizingTool.DoDeactivate()
Это останавливает текущее редактирование (StopTransaction).
public override void DoMouseMove()
resizingTool.DoMouseMove()
Позвоните Rect) с новыми границами, определенными точкой мыши.
public override void DoMouseUp()
resizingTool.DoMouseUp()
Позвоните Rect) с прямоугольником на основе последней точки мыши и поднимите событие «сокращенного размера объекта» перед остановкой инструмента.
protected virtual void DoResize(Rect newr)
resizingTool.DoResize(newr)
Измените ширину и/или высоту AdornedElement и, возможно, местоположение AdornedNode, учитывая новые прямоугольные границы для украшенного элемента.
- newr
public override void DoStart()
resizingTool.DoStart()
Захват мыши при запуске этого инструмента.
public override void DoStop()
resizingTool.DoStop()
Выпустите захват мыши при остановке этого инструмента.
public override void UpdateAdornments(Part part)
resizingTool.UpdateAdornments(part)
Покажите Украшение с ручками с изменением размера в точках вдоль края границ AdornedElement, если узел выбран и виден и если CanResize является истинным.
- part
Поля
public static readonly DependencyProperty CellSizeProperty
value = ResizingTool.CellSizeProperty
Идентифицирует свойство зависимости CellSize.
public static readonly DependencyProperty MaxSizeProperty
value = ResizingTool.MaxSizeProperty
Идентифицирует свойство зависимости MaxSize.
public static readonly DependencyProperty MinSizeProperty
value = ResizingTool.MinSizeProperty
Идентифицирует свойство зависимости MinSize.