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


C# Pen.GetSquaredTransformedWidth方法代码示例

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


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

示例1: DrawShape

		void DrawShape(Pen pen, awt.Shape shape) {
			if (pen == null)
				throw new ArgumentNullException("pen");

			if (StrokeFactory.CanCreateAdvancedStroke && 
				(!pen.CanCreateBasicStroke || !NeedsNormalization)) {
				geom.AffineTransform oldT = NativeObject.getTransform();
				NativeObject.setTransform(Matrix.IdentityTransform.NativeObject);

				try {
					geom.AffineTransform t = GetFinalTransform();
					if (!oldT.isIdentity()) {
						t = (geom.AffineTransform)t.clone();
						t.preConcatenate(oldT);
					}
					
					double widthsquared = pen.GetSquaredTransformedWidth(t);

					bool antiAlias = (SmoothingMode == SmoothingMode.AntiAlias);

					bool thin = (widthsquared <= (antiAlias ? 
						AdvancedStroke.MinPenSizeAASquared :
						AdvancedStroke.MinPenSizeSquared));

					PenFit penFit = thin ? (antiAlias ? PenFit.ThinAntiAlias : PenFit.Thin) : PenFit.NotThin;

					if (NeedsNormalization) {

						bool normThin = 
							widthsquared <= AdvancedStroke.MinPenSizeSquaredNorm;

						if (normThin) {
							shape = GetNormalizedShape(shape, t);
							shape = pen.GetNativeObject(
								t, null, penFit).createStrokedShape(shape);
						}
						else {
							shape = pen.GetNativeObject(t, penFit).createStrokedShape(shape);
							shape = GetNormalizedShape(shape, null);
						}
					}
					else {
						shape = pen.GetNativeObject(t, penFit).createStrokedShape(shape);
					}

					FillScaledShape(pen.Brush, shape);
				}
				finally {
					NativeObject.setTransform(oldT);
				}
			}
			else {
				awt.Stroke oldStroke = NativeObject.getStroke();
				NativeObject.setStroke(pen.GetNativeObject(null, PenFit.NotThin));
				try {

					NativeObject.setPaint(pen.Brush);

					geom.AffineTransform oldT = NativeObject.getTransform();
					NativeObject.transform(GetFinalTransform());
					try {
						NativeObject.draw(shape);
					}
					finally {
						NativeObject.setTransform(oldT);
					}
				}
				finally {
					NativeObject.setStroke(oldStroke);
				}
			}
		}
开发者ID:calumjiao,项目名称:Mono-Class-Libraries,代码行数:72,代码来源:Graphics.jvm.cs


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