本文整理汇总了C#中IDiagramPresenter.SuspendUpdate方法的典型用法代码示例。如果您正苦于以下问题:C# IDiagramPresenter.SuspendUpdate方法的具体用法?C# IDiagramPresenter.SuspendUpdate怎么用?C# IDiagramPresenter.SuspendUpdate使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IDiagramPresenter
的用法示例。
在下文中一共展示了IDiagramPresenter.SuspendUpdate方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ProcessMouseEvent
/// <override></override>
public override bool ProcessMouseEvent(IDiagramPresenter diagramPresenter, MouseEventArgsDg e) {
if (diagramPresenter == null) throw new ArgumentNullException("diagramPresenter");
bool result = false;
MouseState newMouseState = MouseState.Empty;
newMouseState.Buttons = e.Buttons;
newMouseState.Modifiers = e.Modifiers;
diagramPresenter.ControlToDiagram(e.Position, out newMouseState.Position);
diagramPresenter.SuspendUpdate();
try {
switch (e.EventType) {
case MouseEventType.MouseDown:
timer.Stop();
break;
case MouseEventType.MouseMove:
if (CurrentMouseState.Position != newMouseState.Position) {
if (newMouseState.IsButtonDown(MouseButtonsDg.Left)
&& diagramPresenter.Project.SecurityManager.IsGranted(Permission.Insert)) {
diagramPresenter.ControlToDiagram(e.Position, out p);
currentStroke.Add(p.X, p.Y);
}
diagramPresenter.SetCursor(penCursorId);
}
Invalidate(diagramPresenter);
break;
case MouseEventType.MouseUp:
if (newMouseState.IsButtonDown(MouseButtonsDg.Left)
&& diagramPresenter.Project.SecurityManager.IsGranted(Permission.Insert)) {
StartToolAction(diagramPresenter, 0, newMouseState, false);
strokeSet.Add(currentStroke);
currentStroke = new Stroke();
timer.Start();
}
break;
default: throw new NShapeUnsupportedValueException(e.EventType);
}
} finally { diagramPresenter.ResumeUpdate(); }
base.ProcessMouseEvent(diagramPresenter, e);
return result;
}
示例2: ProcessMouseEvent
public override bool ProcessMouseEvent(IDiagramPresenter diagramPresenter, MouseEventArgsDg e)
{
if (diagramPresenter == null) throw new ArgumentNullException("diagramPresenter");
bool result = false;
// get new mouse state
MouseState newMouseState = MouseState.Empty;
newMouseState.Buttons = e.Buttons;
newMouseState.Modifiers = e.Modifiers;
diagramPresenter.ControlToDiagram(e.Position, out newMouseState.Position);
diagramPresenter.SuspendUpdate();
try {
// Only process mouse action if the position of the mouse or a mouse button state changed
//if (e.EventType != MouseEventType.MouseMove || newMouseState.Position != CurrentMouseState.Position) {
// Process the mouse event
switch (e.EventType) {
case MouseEventType.MouseDown:
// Start drag action such as drawing a SelectionFrame or moving selectedShapes/shape handles
result = ProcessMouseDown(diagramPresenter, newMouseState);
break;
case MouseEventType.MouseMove:
// Set cursors depending on HotSpots or draw moving/resizing preview
result = ProcessMouseMove(diagramPresenter, newMouseState);
break;
case MouseEventType.MouseUp:
// perform selection/moving/resizing
result = ProcessMouseUp(diagramPresenter, newMouseState);
break;
default:
throw new NShapeUnsupportedValueException(e.EventType);
}
//}
}
finally {
diagramPresenter.ResumeUpdate();
}
base.ProcessMouseEvent(diagramPresenter, e);
return result;
}
示例3: ProcessMouseEvent
/// <override></override>
public override bool ProcessMouseEvent(IDiagramPresenter diagramPresenter, MouseEventArgsDg e) {
if (diagramPresenter == null) throw new ArgumentNullException("diagramPresenter");
bool result = false;
MouseState newMouseState = MouseState.Empty;
newMouseState.Buttons = e.Buttons;
newMouseState.Modifiers = e.Modifiers;
// Return if action is not allowed
if (!diagramPresenter.Project.SecurityManager.IsGranted(Permission.Insert, Template.Shape))
return result;
diagramPresenter.ControlToDiagram(e.Position, out newMouseState.Position);
diagramPresenter.SuspendUpdate();
try {
switch (e.EventType) {
case MouseEventType.MouseMove:
if (newMouseState.Position != CurrentMouseState.Position) {
// If no Preview exists, create a new one by starting a new ToolAction
if (!IsToolActionPending)
StartToolAction(diagramPresenter, (int)Action.Create, newMouseState, false);
Invalidate(ActionDiagramPresenter);
// Move preview shape to Mouse Position
PreviewShape.MoveTo(newMouseState.X, newMouseState.Y);
// Snap to grid
if (diagramPresenter.SnapToGrid) {
int snapDeltaX = 0, snapDeltaY = 0;
FindNearestSnapPoint(diagramPresenter, PreviewShape, 0, 0, out snapDeltaX, out snapDeltaY);
PreviewShape.MoveTo(newMouseState.X + snapDeltaX, newMouseState.Y + snapDeltaY);
}
Invalidate(ActionDiagramPresenter);
result = true;
}
break;
case MouseEventType.MouseUp:
if (IsToolActionPending && newMouseState.IsButtonDown(MouseButtonsDg.Left)) {
try {
// Left mouse button was pressed: Create shape
executing = true;
Invalidate(ActionDiagramPresenter);
if (ActionDiagramPresenter.Diagram != null) {
int x = PreviewShape.X;
int y = PreviewShape.Y;
Shape newShape = Template.CreateShape();
newShape.ZOrder = ActionDiagramPresenter.Project.Repository.ObtainNewTopZOrder(ActionDiagramPresenter.Diagram);
newShape.MoveTo(x, y);
ActionDiagramPresenter.InsertShape(newShape);
result = true;
}
} finally {
executing = false;
}
EndToolAction();
OnToolExecuted(ExecutedEventArgs);
} else if (newMouseState.IsButtonDown(MouseButtonsDg.Right)) {
// Right mouse button was pressed: Cancel Tool
Cancel();
result = true;
}
break;
case MouseEventType.MouseDown:
// nothing to to yet
// ToDo 3: Implement dragging a frame with the mouse and fit the shape into that frame when releasing the button
break;
default: throw new NShapeUnsupportedValueException(e.EventType);
}
} finally { diagramPresenter.ResumeUpdate(); }
base.ProcessMouseEvent(diagramPresenter, e);
return result;
}