Rule Builder – Configurer le style SVG – C#

Style SVG

L’élément SVG <style> est utilisé pour définir des styles internes dans un document SVG. Il permet aux développeurs d’appliquer des règles CSS directement aux éléments SVG, offrant ainsi un moyen pratique de contrôler l’apparence des graphiques SVG.

L’API Aspose.SVG Builder propose la classe SVGStyleElementBuilder, qui est un générateur d’éléments permettant de construire un élément SVG <style>. Cette classe facilite la création et la configuration d’un élément SVG <style> avec des règles CSS.

Cet article concerne la classe RuleBuilder, qui est une classe de générateur permettant de construire des règles de style CSS. Cette classe est utilisée pour créer dynamiquement une chaîne de styles CSS en définissant divers attributs et leurs valeurs.

Rule Builder – Classe RuleBuilder

Le Rule Builder permet aux développeurs d’appliquer des règles CSS aux documents SVG par programmation dans le code C#, offrant ainsi flexibilité et contrôle sur l’apparence visuelle des éléments SVG. Cet exemple montre comment créer un élément SVG <style>, y ajouter une règle CSS @font-face et utiliser la méthode AddRule() pour définir les styles de police pour les éléments de texte dans un document SVG:

 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    }

Texte “Visualisation du fichier font-face.svg”

@font-face

La règle CSS @font-face vous permet de spécifier des polices pour afficher le texte sur les pages Web qui peuvent être téléchargées soit depuis un serveur distant, soit depuis l’ordinateur de l’utilisateur. La règle définit un nom de famille de polices personnalisé et spécifie l’URL source du fichier de police.

Dans l’exemple ci-dessus, la règle @font-face définit une famille de polices personnalisée nommée “VeinlineRegular”. Cette règle garantit que la police est chargée et disponible pour être utilisée dans le document SVG.

Méthode AddRule()

La méthode AddRule() fait partie du Rule Builder, qui vous permet de créer des règles CSS dans des documents SVG. Il prend deux paramètres: le nom du sélecteur CSS et une expression lambda définissant les propriétés du style à l’aide de RuleBuilder.

Dans l’exemple C# ci-dessus, deux règles sont ajoutées:

Constructeurs dans les Constructeurs – Builders within Builders

L’API SVG Builder introduit du sucre de syntaxe pour affiner davantage le processus de création et de manipulation SVG. Cela inclut des générateurs imbriqués pour divers éléments SVG, offrant un moyen plus intuitif et efficace de définir des structures SVG complexes. Un modèle “constructeur dans un constructeur” implique l’utilisation de plusieurs classes de constructeur, dans lesquelles un constructeur est imbriqué dans un autre pour faciliter la construction d’objets ou de structures complexes.

L’extrait de code suivant montre comment utiliser « RuleBuilder », qui est un exemple de générateur dans un générateur, pour créer et styliser des graphiques SVG par programme :

 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    }

Conclusion

Aspose.SVG pour .NET fournit une fonctionnalité Rule Builder qui permet aux développeurs de définir par programme des règles CSS pour les éléments SVG à l’aide de l’API SVG Builder.

Voir également

  • L’article Element Builders se penche sur les Element Builders utilisés dans l’API SVG Builder. Vous découvrirez la classe SVGElementBuilder, ses constructeurs spécialisés et comment ils simplifient la programmation SVG.
  • Veuillez consulter l’article Path Builder pour en savoir plus sur la classe PathBuilder, conçue pour simplifier la création et la manipulation des chemins SVG. L’article montre comment Path Builder offre une syntaxe intuitive pour définir des chemins SVG par programme, permettant aux développeurs de rationaliser le processus de création de formes et de courbes complexes.
  • L’article Paint Builder concerne PaintBuilder, une classe de construction permettant de créer des valeurs de peinture pour les éléments SVG. Cette classe est utilisée pour spécifier la valeur des attributs stroke ou fill pour diverses formes et éléments SVG lors du remplissage avec de la peinture, un motif ou un dégradé.
Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.