当前位置: 首页>>代码示例>>C#>>正文


C# IDiagramPresenter.DrawCaptionBounds方法代码示例

本文整理汇总了C#中IDiagramPresenter.DrawCaptionBounds方法的典型用法代码示例。如果您正苦于以下问题:C# IDiagramPresenter.DrawCaptionBounds方法的具体用法?C# IDiagramPresenter.DrawCaptionBounds怎么用?C# IDiagramPresenter.DrawCaptionBounds使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在IDiagramPresenter的用法示例。


在下文中一共展示了IDiagramPresenter.DrawCaptionBounds方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Draw

		/// <override></override>
		public override void Draw(IDiagramPresenter diagramPresenter) {
			if (diagramPresenter == null) throw new ArgumentNullException("diagramPresenter");
			switch (CurrentAction) {
				case Action.Select:
					// nothing to do
					break;

				case Action.None:
				case Action.EditCaption:
					// MouseOver-Highlighting of the caption under the cursor 
					// At the moment, the ownerDisplay draws the caption bounds along with the selection highlighting
					IDiagramPresenter presenter = (CurrentAction == Action.None) ? diagramPresenter : ActionDiagramPresenter;
					if (IsEditCaptionFeasible(presenter, CurrentMouseState, SelectedShapeAtCursorInfo)) {
						diagramPresenter.ResetTransformation();
						try {
							diagramPresenter.DrawCaptionBounds(IndicatorDrawMode.Highlighted, (ICaptionedShape)SelectedShapeAtCursorInfo.Shape, SelectedShapeAtCursorInfo.CaptionIndex);
						} finally { diagramPresenter.RestoreTransformation(); }
					}
					break;

				case Action.SelectWithFrame:
					diagramPresenter.ResetTransformation();
					try {
						diagramPresenter.DrawSelectionFrame(frameRect);
					} finally { diagramPresenter.RestoreTransformation(); }
					break;

				case Action.MoveShape:
				case Action.MoveHandle:
					// Draw shape previews first
					diagramPresenter.DrawShapes(Previews.Values);

					// Then draw snap-lines and -points
					if (SelectedShapeAtCursorInfo != null && (snapPtId > 0 || snapDeltaX != 0 || snapDeltaY != 0)) {
						Shape previewAtCursor = FindPreviewOfShape(SelectedShapeAtCursorInfo.Shape);
						diagramPresenter.DrawSnapIndicators(previewAtCursor);
					}
					// Finally, draw highlighted connection points and/or highlighted shape outlines
					if (diagramPresenter.SelectedShapes.Count == 1 && SelectedShapeAtCursorInfo.ControlPointId != ControlPointId.None) {
						Shape preview = FindPreviewOfShape(diagramPresenter.SelectedShapes.TopMost);
						if (preview.HasControlPointCapability(SelectedShapeAtCursorInfo.ControlPointId, ControlPointCapabilities.Glue)) {
							// Find and highlight valid connection targets in range
							Point p = preview.GetControlPointPosition(SelectedShapeAtCursorInfo.ControlPointId);
							DrawConnectionTargets(ActionDiagramPresenter, SelectedShapeAtCursorInfo.Shape, SelectedShapeAtCursorInfo.ControlPointId, p, ActionDiagramPresenter.SelectedShapes);
						}
					}
					break;

				case Action.PrepareRotate:
				case Action.Rotate:
					if (CurrentAction == Action.Rotate)
						diagramPresenter.DrawShapes(Previews.Values);
					diagramPresenter.ResetTransformation();
					try {
						if (PendingToolActionsCount == 1) {
							diagramPresenter.DrawAnglePreview(rectBuffer.Location, CurrentMouseState.Position, cursors[ToolCursor.Rotate], 0, 0);
						} else {
							// Get MouseState of the first click (on the rotation point)
							MouseState initMouseState = GetPreviousMouseState();
							int startAngle, sweepAngle;
							CalcAngle(initMouseState, ActionStartMouseState, CurrentMouseState, out startAngle, out sweepAngle);

							// ToDo: Determine standard cursor size
							rectBuffer.Location = SelectedShapeAtCursorInfo.Shape.GetControlPointPosition(SelectedShapeAtCursorInfo.ControlPointId);
							rectBuffer.Width = rectBuffer.Height = (int)Math.Ceiling(Geometry.DistancePointPoint(rectBuffer.Location, CurrentMouseState.Position));

							diagramPresenter.DrawAnglePreview(rectBuffer.Location, CurrentMouseState.Position,
								cursors[ToolCursor.Rotate], startAngle, sweepAngle);
						}
					} finally { diagramPresenter.RestoreTransformation(); }
					break;

				default: throw new NShapeUnsupportedValueException(CurrentAction);
			}
		}
开发者ID:jestonitiro,项目名称:nshape,代码行数:76,代码来源:Tool.cs


注:本文中的IDiagramPresenter.DrawCaptionBounds方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。