Rule Builder – SVG-Stil konfigurieren – C#

SVG Style

Das SVG-Element <style> wird verwendet, um interne Stile innerhalb eines SVG-Dokuments zu definieren. Es ermöglicht Entwicklern, CSS-Regeln direkt auf SVG-Elemente anzuwenden und bietet so eine bequeme Möglichkeit, das Erscheinungsbild von SVG-Grafiken zu steuern.

Die Aspose.SVG Builder API bietet die Klasse SVGStyleElementBuilder, bei der es sich um einen Element-Builder zum Erstellen eines SVG-Elements <style> handelt. Diese Klasse erleichtert die Erstellung und Konfiguration eines SVG-Elements <style> mit CSS-Regeln.

In diesem Artikel geht es um die Klasse RuleBuilder, eine Builder-Klasse zum Erstellen von CSS-Stilregeln. Diese Klasse wird verwendet, um dynamisch eine Reihe von CSS-Stilen zu erstellen, indem verschiedene Attribute und deren Werte festgelegt werden.

Rule Builder – RuleBuilder-Klasse

Der Rule Builder ermöglicht Entwicklern die programmgesteuerte Anwendung von CSS-Regeln für SVG-Dokumente innerhalb von C#-Code und bietet so Flexibilität und Kontrolle über das visuelle Erscheinungsbild von SVG-Elementen. Dieses Beispiel zeigt, wie man ein SVG-Element <style> erstellt, ihm eine CSS-Regel @font-face hinzufügt und die AddRule()-Methode zum Definieren von Schriftstilen für Textelemente in einem SVG-Dokument:

 1using Aspose.Svg.Builder;
 2using System.Drawing;
 3using System.IO;
 4...
 5
 6    using (var document = new SVGDocument())
 7    {
 8        var svg = new SVGSVGElementBuilder()
 9            
10            .AddDefs(def => def
11                .AddStyle(st => st
12                    .Type("text/css")
13                    .AddRule("@font-face", r => r
14                        .FontFamily("VeinlineRegular")
15                        .Attribute("src", "url(https://assets.ithillel.ua/wiki/VeinlineRegular.ttf)")
16                    )
17                    .AddRule("text", t => t
18                        .FontFamily("VeinlineRegular")
19                        .FontSize(30, LengthType.Pt)
20                    )
21                )
22            )
23                .AddText(t => t
24                .X(20).Y(60).Fill(Color.DarkRed).FontWeight(FontWeight.Bold)
25                .AddContent("Configure SVG Style")
26                )
27                .AddText(t => t
28                .X(20).Y(150)
29                .AddContent("Set your SVG style with Rule Builder!")
30                )
31            .Build(document.FirstChild as SVGSVGElement);
32        document.Save(Path.Combine(OutputDir, "font-face.svg"));
33    }

Text “font-face.svg-Dateivisualisierung”

@font-face-Regel

Mit der CSS-Regel @font-face können Sie Schriftarten für die Anzeige von Text auf Webseiten angeben, die entweder von einem Remote-Server oder vom Computer des Benutzers heruntergeladen werden können. Die Regel definiert einen benutzerdefinierten Schriftfamiliennamen und gibt die Quell-URL der Schriftdatei an.

Im obigen Beispiel definiert die @font-face-Regel eine benutzerdefinierte Schriftartfamilie mit dem Namen “VeinlineRegular”. Diese Regel stellt sicher, dass die Schriftart geladen wird und für die Verwendung im SVG-Dokument verfügbar ist.

AddRule()-Methode

Die Methode AddRule() ist Teil des Rule Builder, mit dem Sie CSS-Regeln in SVG-Dokumenten erstellen können. Es benötigt zwei Parameter: den Namen des CSS-Selektors und einen Lambda-Ausdruck, der die Eigenschaften des Stils mithilfe von RuleBuilder definiert.

Im obigen C#-Beispiel werden zwei Regeln hinzugefügt:

Bauherren innerhalb der Bauherren

Die SVG Builder-API führt Syntax Sugar ein, um den Prozess der SVG-Erstellung und -Bearbeitung weiter zu verfeinern. Dazu gehören verschachtelte Builder für verschiedene SVG-Elemente, die eine intuitivere und effizientere Möglichkeit bieten, komplexe SVG-Strukturen zu definieren. Ein Builder-in-Builder-Muster beinhaltet die Verwendung mehrerer Builder-Klassen, wobei ein Builder in einem anderen verschachtelt ist, um die Konstruktion komplexer Objekte oder Strukturen zu erleichtern.

Der folgende Codeausschnitt zeigt, wie man RuleBuilder, ein Beispiel für einen Builder innerhalb eines Builders, verwendet, um SVG-Grafiken programmgesteuert zu erstellen und zu formatieren:

 1using Aspose.Svg.Builder;
 2using System.Drawing;
 3using System.IO;
 4...
 5    // Initialize an SVG document
 6    using (var document = new SVGDocument())
 7    {
 8        // Create an <svg> element
 9        var svg = new SVGSVGElementBuilder()
10
11            .AddStyle(st => st
12                .AddRule("circle", r => r
13                    .Fill(paint: Paint.None)
14                    .Stroke(color: Color.DarkRed)
15                    .StrokeWidth(60)
16                )
17                .AddRule("text", t => t
18                    .Fill(color: Color.Red)
19                    .Stroke(color: Color.Teal)
20                    .StrokeWidth(1)
21                    .FontFamily("Arial")
22                    .FontSize(30, LengthType.Pt)
23                )
24            )
25            .AddG(g => g
26                .AddCircle(circle => circle.Cx(100).Cy(130).R(60).StrokeDashArray(2, 14))
27                .AddText("Rule Builder", x: 230, y: 140)
28            )
29            .Build(document.FirstChild as SVGSVGElement);
30
31        // Save the SVG document
32        document.Save(Path.Combine(OutputDir, "rule-builder.svg"));
33    }

Abschluss

Aspose.SVG für .NET bietet eine Rule Builder-Funktion, die es Entwicklern ermöglicht, CSS-Regeln für SVG-Elemente mithilfe der SVG Builder-API programmgesteuert zu definieren.

Siehe auch

  • Der Artikel Element Builders befasst sich eingehend mit den Element Buildern, die in der SVG Builder API verwendet werden. Sie erfahren mehr über die SVGElementBuilder-Klasse, ihre speziellen Builder und wie sie die SVG-Programmierung vereinfachen.
  • Bitte lesen Sie den Artikel Path Builder, um mehr über die PathBuilder-Klasse zu erfahren, die die Erstellung und Bearbeitung von SVG-Pfaden vereinfachen soll. Der Artikel zeigt, wie der Path Builder eine intuitive Syntax zum programmgesteuerten Definieren von SVG-Pfaden bietet und es Entwicklern ermöglicht, den Prozess der Erstellung komplizierter Formen und Kurven zu optimieren.
  • Im Artikel Paint Builder geht es um PaintBuilder, eine Builder-Klasse zum Erstellen von Farbwerten für SVG-Elemente. Diese Klasse wird verwendet, um den Wert der Attribute stroke oder fill für verschiedene SVG-Formen und -Elemente anzugeben, wenn diese mit Farbe, Muster oder Farbverlauf gefüllt werden.
Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.