NodeRendererBase
内容
[
隐藏
]NodeRendererBase class
的基类ShapeRenderer
和OfficeMathRenderer
.
要了解更多信息,请访问使用形状文档文章。
public abstract class NodeRendererBase
特性
姓名 | 描述 |
---|---|
BoundsInPoints { get; } | 获取形状的实际边界(以点为单位)。 |
OpaqueBoundsInPoints { get; } | 获取形状的不透明边界(以点为单位)。 |
SizeInPoints { get; } | 获取形状的实际大小(以磅为单位)。 |
方法
姓名 | 描述 |
---|---|
GetBoundsInPixels(float, float) | 计算指定缩放系数和分辨率的形状边界(以像素为单位)。 |
GetBoundsInPixels(float, float, float) | 计算指定缩放系数和分辨率的形状边界(以像素为单位)。 |
GetOpaqueBoundsInPixels(float, float) | 计算指定缩放系数和分辨率的形状的不透明边界(以像素为单位)。 |
GetOpaqueBoundsInPixels(float, float, float) | 计算指定缩放系数和分辨率的形状的不透明边界(以像素为单位)。 |
GetSizeInPixels(float, float) | 计算指定缩放系数和分辨率下形状的大小(以像素为单位)。 |
GetSizeInPixels(float, float, float) | 计算指定缩放系数和分辨率下形状的大小(以像素为单位)。 |
RenderToScale(Graphics, float, float, float) | 将形状渲染为Graphics 对象达到指定比例。 |
RenderToSize(Graphics, float, float, float, float) | 将形状渲染为Graphics 对象到指定大小。 |
Save(Stream, ImageSaveOptions) | 将形状渲染为图像并保存到流中。 |
Save(string, ImageSaveOptions) | 将形状渲染为图像并保存到文件中。 |
例子
展示如何测量和缩放形状。
Document doc = new Document(MyDir + "Office math.docx");
OfficeMath officeMath = (OfficeMath)doc.GetChild(NodeType.OfficeMath, 0, true);
OfficeMathRenderer renderer = new OfficeMathRenderer(officeMath);
// 验证 OfficeMath 对象在渲染时将创建的图像的大小。
Assert.AreEqual(119.0f, renderer.SizeInPoints.Width, 0.2f);
Assert.AreEqual(13.0f, renderer.SizeInPoints.Height, 0.1f);
Assert.AreEqual(119.0f, renderer.BoundsInPoints.Width, 0.2f);
Assert.AreEqual(13.0f, renderer.BoundsInPoints.Height, 0.1f);
// 具有透明部分的形状可能在“OpaqueBoundsInPoints”属性中包含不同的值。
Assert.AreEqual(119.0f, renderer.OpaqueBoundsInPoints.Width, 0.2f);
Assert.AreEqual(14.2f, renderer.OpaqueBoundsInPoints.Height, 0.1f);
// 获取形状大小(以像素为单位),并线性缩放到特定 DPI。
Rectangle bounds = renderer.GetBoundsInPixels(1.0f, 96.0f);
Assert.AreEqual(159, bounds.Width);
Assert.AreEqual(18, bounds.Height);
// 获取形状大小(以像素为单位),但水平和垂直尺寸具有不同的 DPI。
bounds = renderer.GetBoundsInPixels(1.0f, 96.0f, 150.0f);
Assert.AreEqual(159, bounds.Width);
Assert.AreEqual(28, bounds.Height);
// 此处的不透明边界也可能有所不同。
bounds = renderer.GetOpaqueBoundsInPixels(1.0f, 96.0f);
Assert.AreEqual(159, bounds.Width);
Assert.AreEqual(18, bounds.Height);
bounds = renderer.GetOpaqueBoundsInPixels(1.0f, 96.0f, 150.0f);
Assert.AreEqual(159, bounds.Width);
Assert.AreEqual(30, bounds.Height);