ShapeRenderer
Contenu
[
Cacher
]ShapeRenderer class
Fournit des méthodes pour restituer un individuShape
ouGroupShape
vers une image raster ou vectorielle ou vers un objet graphique.
Pour en savoir plus, visitez leTravailler avec des formes article documentaire.
public class ShapeRenderer : NodeRendererBase
Constructeurs
Nom | La description |
---|---|
ShapeRenderer(ShapeBase) | Initialise une nouvelle instance de cette classe. |
Propriétés
Nom | La description |
---|---|
BoundsInPoints { get; } | Obtient les limites réelles de la forme en points. |
OpaqueBoundsInPoints { get; } | Obtient les limites opaques de la forme en points. |
SizeInPoints { get; } | Obtient la taille réelle de la forme en points. |
Méthodes
Nom | La description |
---|---|
GetBoundsInPixels(float, float) | Calcule les limites de la forme en pixels pour un facteur de zoom et une résolution spécifiés. |
GetBoundsInPixels(float, float, float) | Calcule les limites de la forme en pixels pour un facteur de zoom et une résolution spécifiés. |
GetOpaqueBoundsInPixels(float, float) | Calcule les limites opaques de la forme en pixels pour un facteur de zoom et une résolution spécifiés. |
GetOpaqueBoundsInPixels(float, float, float) | Calcule les limites opaques de la forme en pixels pour un facteur de zoom et une résolution spécifiés. |
GetSizeInPixels(float, float) | Calcule la taille de la forme en pixels pour un facteur de zoom et une résolution spécifiés. |
GetSizeInPixels(float, float, float) | Calcule la taille de la forme en pixels pour un facteur de zoom et une résolution spécifiés. |
RenderToScale(Graphics, float, float, float) | Rend la forme dans unGraphics objet à une échelle spécifiée. |
RenderToSize(Graphics, float, float, float, float) | Rend la forme dans unGraphics objet à une taille spécifiée. |
Save(Stream, ImageSaveOptions) | Rend la forme dans une image et l’enregistre dans un flux. |
Save(string, ImageSaveOptions) | Rend la forme dans une image et l’enregistre dans un fichier. |
Exemples
Montre comment restituer une forme avec un objet Graphics et l’afficher à l’aide d’un Windows Form.
public void RenderShapesOnForm()
{
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
ShapeForm shapeForm = new ShapeForm(new Size(1017, 840));
// Vous trouverez ci-dessous deux manières d'utiliser la classe "ShapeRenderer" pour restituer une forme dans un objet Graphics.
// 1 - Créez une forme avec un graphique et restituez-la à une échelle spécifique.
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 - Créez un groupe de formes et affichez-le à une taille spécifique.
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>
/// Rend et affiche une liste de formes.
/// </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;
}
Voir également
- class NodeRendererBase
- espace de noms Aspose.Words.Rendering
- Assemblée Aspose.Words