ResizingTool
O ResizingTool é usado para alterar interactivamente o tamanho de um elemento.
Herda de: DiagramTool
Propriedades
protected FrameworkElement AdornedElement { get; set; }
value = resizingTool.AdornedElement
resizingTool.AdornedElement = value
Obtém ou define o FrameworkElement atual que está sendo redimensionado.
protected Node AdornedNode { get; }
value = resizingTool.AdornedNode
Obtém o nó atual em que o AdornedElement está.
public Size CellSize { get; set; }
value = resizingTool.CellSize
resizingTool.CellSize = value
Obtém ou define o tamanho da célula do elemento selecionado, de modo que o redimensionamento é limitado a múltiplos do tamanho da célula.
protected FrameworkElement Handle { get; set; }
value = resizingTool.Handle
resizingTool.Handle = value
Obtém ou define o dimensionamento atual do cabo que está sendo arrastado.
public Size MaxSize { get; set; }
value = resizingTool.MaxSize
resizingTool.MaxSize = value
Obtém ou define o tamanho máximo do elemento seleccionado.
public Size MinSize { get; set; }
value = resizingTool.MinSize
resizingTool.MinSize = value
Obtém ou define o tamanho mínimo do elemento seleccionado.
protected Rect OriginalBounds { get; set; }
value = resizingTool.OriginalBounds
resizingTool.OriginalBounds = value
Obtém ou define os limites, em coordenadas de modelo, do AdornedElement quando o usuário começou a redimensionar.
protected Point OriginalLocation { get; set; }
value = resizingTool.OriginalLocation
resizingTool.OriginalLocation = value
Obtém ou define a localização, nas coordenadas do modelo, do AdornedNode quando o usuário começou a redimensionar.
Métodos
public override bool CanStart()
result = resizingTool.CanStart()
O ResizingTool pode ser executado quando houver um evento de redução de mouse em uma alça de redimensionamento.
protected virtual Size ComputeCellSize()
result = resizingTool.ComputeCellSize()
O tamanho deve ser um múltiplo do valor retornado por este método.
Retorna: O CellSize, a menos que um ou ambos da sua largura e altura sejam Double.NaNou zero. Se for esse o caso, ele usa a largura e/ou altura do nó ResizeCellSize. Mas se um ou ambos da largura e altura ainda estiverem Double.NaN ou zero, ele procura por um nó de snapping da grade atrás do AdornedNode, um que é DragOverSnapEnabled, e usa o seu DragOverSnapCellSize. Se não conseguir encontrar um nó de snapping da grade, ou um ou ambos da largura e altura são NaN@, ele usa o diagrama @ SGridSnapCellSize se o diagrama for GridSnapEnabled@. Finalmente, ele é padrão para 1x1.
protected virtual Size ComputeMaxSize()
result = resizingTool.ComputeMaxSize()
O tamanho máximo de redimensionamento efetivo é o mínimo de MaxSize e o FrameworkElement's MaxWidth@ e MaxHeight@.
Retorna: o tamanho máximo desejado durante o redimensionamento
protected virtual Size ComputeMinSize()
result = resizingTool.ComputeMinSize()
O tamanho mínimo efetivo de redimensionamento é o máximo de MinSize e o FrameworkElement's MinWidth@ e MinHeight@.
Retorna: o tamanho mínimo desejado durante o redimensionamento
protected virtual Rect ComputeResize(Point newPoint, Spot spot, Size min, Size max, bool reshape)
result = resizingTool.ComputeResize(newPoint, spot, min, max, reshape)
Dado um Ponto no OriginalBounds e um novo Ponto, computa o novo Rect.
- newPoint
- um ponto nas coordenadas do modelo
- spot
- O ponto nos limites retangulares para os quais o cabo está sendo arrastado
- min
- o retângulo computado deve ser pelo menos tão grande quanto estas dimensões
- max
- o retângulo computado não deve ser superior a estas dimensões
- reshape
- se a relação de aspecto do retângulo pode mudar
public override void DoCancel()
resizingTool.DoCancel()
Restaure o OriginalBounds do AdornedElement e pare esta ferramenta.
public override void DoDeactivate()
resizingTool.DoDeactivate()
Isto para a edição atual (StopTransaction).
public override void DoMouseMove()
resizingTool.DoMouseMove()
Chamar Rect) com um novo limite determinado pelo ponto do mouse.
public override void DoMouseUp()
resizingTool.DoMouseUp()
Chamar Rect) com um retângulo baseado no ponto mais recente do mouse, e levantar um evento "objeto redimensionado" antes de parar a ferramenta.
protected virtual void DoResize(Rect newr)
resizingTool.DoResize(newr)
Altere a Largura e/ou Altura de AdornedElement, e talvez a Localização de AdornedNode, dado um novo limite retangular para o elemento adornado.
- newr
public override void DoStart()
resizingTool.DoStart()
Capture o mouse ao iniciar esta ferramenta.
public override void DoStop()
resizingTool.DoStop()
Solte a captura do mouse ao parar esta ferramenta.
public override void UpdateAdornments(Part part)
resizingTool.UpdateAdornments(part)
Mostrar um Adornment com alças de redimensionamento em pontos ao longo da borda dos limites do AdornedElement, se o nó estiver selecionado e visível e se CanResize@ for verdadeiro.
- part
Campos
public static readonly DependencyProperty CellSizeProperty
value = ResizingTool.CellSizeProperty
Identifica a propriedade CellSize dependência.
public static readonly DependencyProperty MaxSizeProperty
value = ResizingTool.MaxSizeProperty
Identifica a propriedade MaxSize dependência.
public static readonly DependencyProperty MinSizeProperty
value = ResizingTool.MinSizeProperty
Identifica a propriedade MinSize dependência.