本文整理汇总了C#中IDiagramPresenter.InvalidateGrips方法的典型用法代码示例。如果您正苦于以下问题:C# IDiagramPresenter.InvalidateGrips方法的具体用法?C# IDiagramPresenter.InvalidateGrips怎么用?C# IDiagramPresenter.InvalidateGrips使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IDiagramPresenter
的用法示例。
在下文中一共展示了IDiagramPresenter.InvalidateGrips方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Invalidate
public override void Invalidate(IDiagramPresenter diagramPresenter)
{
if (diagramPresenter == null) throw new ArgumentNullException("diagramPresenter");
switch (CurrentAction) {
case Action.None:
case Action.Select:
if (!selectedShapeAtCursorInfo.IsEmpty) {
selectedShapeAtCursorInfo.Shape.Invalidate();
diagramPresenter.InvalidateGrips(selectedShapeAtCursorInfo.Shape, ControlPointCapabilities.All);
}
break;
case Action.SelectWithFrame:
diagramPresenter.DisplayService.Invalidate(frameRect);
break;
case Action.MoveHandle:
case Action.MoveShape:
if (Previews.Count > 0) {
InvalidateShapes(diagramPresenter, Previews.Values, false);
if (diagramPresenter.SnapToGrid) {
Shape previewAtCursor = FindPreviewOfShape(selectedShapeAtCursorInfo.Shape);
diagramPresenter.InvalidateSnapIndicators(previewAtCursor);
}
if (CurrentAction == Action.MoveHandle && selectedShapeAtCursorInfo.IsCursorAtGluePoint)
InvalidateConnectionTargets(diagramPresenter, CurrentMouseState.X, CurrentMouseState.Y);
}
break;
case Action.ConnectShapes:
if (currentConnectionLine != null)
currentConnectionLine.Invalidate();
break;
default:
throw new NShapeUnsupportedValueException(typeof (MenuItemDef), CurrentAction);
}
}
示例2: InvalidateConnectionTargets
/// <summary>
/// Invalidates all connection targets in range.
/// </summary>
protected void InvalidateConnectionTargets(IDiagramPresenter diagramPresenter, int currentPosX, int currentPosY) {
// invalidate selectedShapes in last range
diagramPresenter.InvalidateGrips(shapesInRange, ControlPointCapabilities.Connect);
if (Geometry.IsValid(currentPosX, currentPosY)) {
ShapeAtCursorInfo shapeAtCursor = FindConnectionTargetFromPosition(diagramPresenter, currentPosX, currentPosY, false, true);
if (!shapeAtCursor.IsEmpty) shapeAtCursor.Shape.Invalidate();
// invalidate selectedShapes in current range
shapesInRange.Clear();
shapesInRange.AddRange(FindVisibleShapes(diagramPresenter, currentPosX, currentPosY, ControlPointCapabilities.Connect, pointHighlightRange));
if (shapesInRange.Count > 0)
diagramPresenter.InvalidateGrips(shapesInRange, ControlPointCapabilities.Connect);
}
}
示例3: DoInvalidateShape
private void DoInvalidateShape(IDiagramPresenter diagramPresenter, Shape shape, bool invalidateGrips)
{
if (shape.Parent != null)
DoInvalidateShape(diagramPresenter, shape.Parent, false);
else {
shape.Invalidate();
if (invalidateGrips)
diagramPresenter.InvalidateGrips(shape, ControlPointCapabilities.All);
}
}
示例4: Invalidate
/// <override></override>
public override void Invalidate(IDiagramPresenter diagramPresenter) {
if (diagramPresenter == null) throw new ArgumentNullException("diagramPresenter");
if (PreviewShape != null) {
diagramPresenter.InvalidateGrips(PreviewShape, ControlPointCapabilities.All);
Point p = PreviewShape.GetControlPointPosition(ControlPointId.LastVertex);
InvalidateConnectionTargets(diagramPresenter, p.X, p.Y);
} else InvalidateConnectionTargets(diagramPresenter, CurrentMouseState.X, CurrentMouseState.Y);
}