ShapeRenderer
محتويات
[
يخفي
]ShapeRenderer class
يوفر طرقًا لتمثيل الفردShape
أوGroupShape
إلى صورة نقطية أو متجهة أو إلى كائن رسومي.
لمعرفة المزيد، قم بزيارةالعمل مع الأشكال مقالة توثيقية.
public class ShapeRenderer : NodeRendererBase
المنشئون
اسم | وصف |
---|---|
ShapeRenderer(ShapeBase) | تهيئة مثيل جديد لهذه الفئة. |
الخصائص
اسم | وصف |
---|---|
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) | يحول الشكل إلى aGraphics كائن بمقياس محدد. |
RenderToSize(Graphics, float, float, float, float) | يحول الشكل إلى aGraphics كائن بحجم محدد. |
Save(Stream, ImageSaveOptions) | يعرض الشكل في صورة ويحفظ في دفق. |
Save(string, ImageSaveOptions) | يحول الشكل إلى صورة ويحفظ في ملف. |
أمثلة
يوضح كيفية تقديم شكل باستخدام كائن رسومي وعرضه باستخدام نموذج Windows.
public void RenderShapesOnForm()
{
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
ShapeForm shapeForm = new ShapeForm(new Size(1017, 840));
// فيما يلي طريقتان لاستخدام فئة "ShapeRenderer" لتقديم شكل إلى كائن رسومي.
// 1 - قم بإنشاء شكل باستخدام مخطط، ثم قم بعرضه على مقياس محدد.
Chart chart = builder.InsertChart(ChartType.Pie, 500, 400).Chart;
chart.Series.Clear();
chart.Series.Add("Desktop Browser Market Share (Oct. 2020)",
new[] { "Google Chrome", "Apple Safari", "Mozilla Firefox", "Microsoft Edge", "Other" },
new[] { 70.33, 8.87, 7.69, 5.83, 7.28 });
Shape chartShape = (Shape)doc.GetChild(NodeType.Shape, 0, true);
shapeForm.AddShapeToRenderToScale(chartShape, 0, 0, 1.5f);
// 2 - إنشاء مجموعة أشكال، وعرضها بحجم محدد.
GroupShape group = new GroupShape(doc);
group.Bounds = new RectangleF(0, 0, 100, 100);
group.CoordSize = new Size(500, 500);
Shape subShape = new Shape(doc, ShapeType.Rectangle);
subShape.Width = 500;
subShape.Height = 500;
subShape.Left = 0;
subShape.Top = 0;
subShape.FillColor = Color.RoyalBlue;
group.AppendChild(subShape);
subShape = new Shape(doc, ShapeType.Image);
subShape.Width = 450;
subShape.Height = 450;
subShape.Left = 25;
subShape.Top = 25;
subShape.ImageData.SetImage(ImageDir + "Logo.jpg");
group.AppendChild(subShape);
builder.InsertNode(group);
GroupShape groupShape = (GroupShape)doc.GetChild(NodeType.GroupShape, 0, true);
shapeForm.AddShapeToRenderToSize(groupShape, 880, 680, 100, 100);
shapeForm.ShowDialog();
}
/// <summary>
/// يعرض ويعرض قائمة من الأشكال.
/// </summary>
private class ShapeForm : Form
{
public ShapeForm(Size size)
{
Size = size;
mShapesToRender = new List<KeyValuePair<ShapeBase, float[]>>();
}
public void AddShapeToRenderToScale(ShapeBase shape, float x, float y, float scale)
{
mShapesToRender.Add(new KeyValuePair<ShapeBase, float[]>(shape, new[] {x, y, scale}));
}
public void AddShapeToRenderToSize(ShapeBase shape, float x, float y, float width, float height)
{
mShapesToRender.Add(new KeyValuePair<ShapeBase, float[]>(shape, new[] {x, y, width, height}));
}
protected override void OnPaint(PaintEventArgs e)
{
foreach (KeyValuePair<ShapeBase, float[]> renderingArgs in mShapesToRender)
if (renderingArgs.Value.Length == 3)
RenderShapeToScale(renderingArgs.Key, renderingArgs.Value[0], renderingArgs.Value[1],
renderingArgs.Value[2]);
else if (renderingArgs.Value.Length == 4)
RenderShapeToSize(renderingArgs.Key, renderingArgs.Value[0], renderingArgs.Value[1],
renderingArgs.Value[2], renderingArgs.Value[3]);
}
private void RenderShapeToScale(ShapeBase shape, float x, float y, float scale)
{
ShapeRenderer renderer = new ShapeRenderer(shape);
using (Graphics formGraphics = CreateGraphics())
{
renderer.RenderToScale(formGraphics, x, y, scale);
}
}
private void RenderShapeToSize(ShapeBase shape, float x, float y, float width, float height)
{
ShapeRenderer renderer = new ShapeRenderer(shape);
using (Graphics formGraphics = CreateGraphics())
{
renderer.RenderToSize(formGraphics, x, y, width, height);
}
}
private readonly List<KeyValuePair<ShapeBase, float[]>> mShapesToRender;
}
أنظر أيضا
- class NodeRendererBase
- مساحة الاسم Aspose.Words.Rendering
- المجسم Aspose.Words