Diagramm-Plot-Bereich

Breite und Höhe des Diagramm-Plot-Bereichs ermitteln

Aspose.Slides für .NET bietet eine einfache API für .

  1. Erstellen Sie eine Instanz der Presentation Klasse.
  2. Greifen Sie auf die erste Folie zu.
  3. Fügen Sie ein Diagramm mit Standarddaten hinzu.
  4. Rufen Sie die Methode IChart.ValidateChartLayout() auf, um die tatsächlichen Werte zu erhalten.
  5. Ermittelt die tatsächliche X-Position (links) des Diagrammelements relativ zur linken oberen Ecke des Diagramms.
  6. Ermittelt das tatsächliche obere Ende des Diagrammelements relativ zur linken oberen Ecke des Diagramms.
  7. Ermittelt die tatsächliche Breite des Diagrammelements.
  8. Ermittelt die tatsächliche Höhe des Diagrammelements.
using (Presentation pres = new Presentation("test.Pptx"))
{
    Chart chart = (Chart)pres.Slides[0].Shapes.AddChart(ChartType.ClusteredColumn, 100, 100, 500, 350);
    chart.ValidateChartLayout();

    double x = chart.PlotArea.ActualX;
    double y = chart.PlotArea.ActualY;
    double w = chart.PlotArea.ActualWidth;
    double h = chart.PlotArea.ActualHeight;
	
	// Präsentation mit Diagramm speichern
	pres.Save("Chart_out.pptx", SaveFormat.Pptx);
}

Layout-Modus des Diagramm-Plot-Bereichs festlegen

Aspose.Slides für .NET bietet eine einfache API zum Festlegen des Layout-Modus des Diagramm-Plot-Bereichs. Die Eigenschaft LayoutTargetType wurde zu den Klassen ChartPlotArea und IChartPlotArea hinzugefügt. Wenn das Layout des Plot-Bereichs manuell definiert wird, gibt diese Eigenschaft an, ob der Plot-Bereich nach seinem Inneren (ohne Achsen und Achsenbeschriftungen) oder nach außen (mit Achsen und Achsenbeschriftungen) positioniert werden soll. Es gibt zwei mögliche Werte, die im Enum LayoutTargetType definiert sind.

  • LayoutTargetType.Inner – gibt an, dass die Größe des Plot-Bereichs die Größe des Plot-Bereichs bestimmt, ohne die Tick-Markierungen und Achsenbeschriftungen.
  • LayoutTargetType.Outer – gibt an, dass die Größe des Plot-Bereichs die Größe des Plot-Bereichs, die Tick-Markierungen und die Achsenbeschriftungen bestimmt.

Beispielcode ist unten angegeben.

using (Presentation presentation = new Presentation())
{
    ISlide slide = presentation.Slides[0];
    IChart chart = slide.Shapes.AddChart(ChartType.ClusteredColumn, 20, 100, 600, 400);
    chart.PlotArea.AsILayoutable.X = 0.2f;
    chart.PlotArea.AsILayoutable.Y = 0.2f;
    chart.PlotArea.AsILayoutable.Width = 0.7f;
    chart.PlotArea.AsILayoutable.Height = 0.7f;
    chart.PlotArea.LayoutTargetType = LayoutTargetType.Inner;

    presentation.Save("SetLayoutMode_outer.pptx", SaveFormat.Pptx);
}

FAQ

In welchen Einheiten werden ActualX, ActualY, ActualWidth und ActualHeight zurückgegeben?

In Punkten; 1 Zoll = 72 Punkte. Das sind die Koordinateneinheiten von Aspose.Slides.

Wie unterscheidet sich der Plot-Bereich vom Diagrammbereich in Bezug auf den Inhalt?

Der Plot-Bereich ist der Datenzeichnungsbereich (Serien, Gitternetzlinien, Trendlinien usw.); der Diagrammbereich umfasst die umliegenden Elemente (Titel, Legende usw.). In 3D-Diagrammen enthält der Plot-Bereich außerdem die Wände/Boden und die Achsen.

Wie werden die X-, Y-, Breiten- und Höhenwerte des Plot-Bereichs interpretiert, wenn das Layout manuell erfolgt?

Sie sind Bruchteile (0–1) der Gesamtabmessungen des Diagramms; in diesem Modus ist die automatische Positionierung deaktiviert und die von Ihnen festgelegten Bruchteile werden verwendet.

Warum hat sich die Position des Plot-Bereichs nach dem Hinzufügen/Bewegen der Legende geändert?

Die Legende befindet sich im Diagrammbereich außerhalb des Plot-Bereichs, beeinflusst jedoch das Layout und den verfügbaren Raum, so dass sich der Plot-Bereich verschieben kann, wenn die automatische Positionierung aktiv ist. (Dies ist das Standardverhalten von PowerPoint-Diagrammen.)