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或0。如果情况是这样,它使用节点ResizeCellSize的宽度和/或高。如果宽度和高度的一面或两面都仍然是Double.NaN或0,它就会在AdornedNode(即DragOverSnapEnabled)后搜索一个网格断裂节点,并使用它的DragOverSnapCellSize。如果它找不到这样的网格断裂节点,或者宽和高的一面或两面都是NaN,那么它就使用图的GridSnapCellSize(即GridSnapEnabled)来进行断裂断裂断裂断断断断断断断断断断断断断断断断断断断断断断断断断断断断断断断断断断断断断断断断断断断断断断断断断断断断断断断断断断断断断断断断断断断断断断断断断断断断
protected virtual Size ComputeMaxSize()
result = resizingTool.ComputeMaxSize()
有效的最大再调整大小是MaxSize和FrameworkElement的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中的一分点和一分点,计算出一分新的Rect.
- newPoint
- a 模型坐标中的点
- spot
- 拖取手柄的矩形界限中的点
- min
- 计算出的矩形必须至少与这些维度相同
- max
- 计算出的矩形不得大于这些维度
- reshape
- 矩形的相向比是否可能改变
public override void DoCancel()
resizingTool.DoCancel()
恢复AdornedElement的OriginalBounds并停止此工具.
public override void DoDeactivate()
resizingTool.DoDeactivate()
这停止了当前编辑(StopTransaction) 。
public override void DoMouseUp()
resizingTool.DoMouseUp()
调用 Rect),基于鼠标最近点的矩形,并在停止工具前提出"对象重塑"事件.
protected virtual void DoResize(Rect newr)
resizingTool.DoResize(newr)
更改 AdornedElement 的宽度和/或高度, 以及 AdornedNode 的位置, 给装饰元素设定了新的长方形界限 。
- newr
public override void UpdateAdornments(Part part)
resizingTool.UpdateAdornments(part)
显示一个带有调整控点的 Adornment, 其大小位于 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的受抚养财产。