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 }
@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.
- La méthode
FontFamily() définit l’attribut
font-family
pour un élément SVG. Il spécifie le nom de la police qui sera utilisé pour définir les propriétés de la police. - La méthode
Attribute() de la classe
RuleBuilder
définit un attributscr
pour l’élément<style>
avec 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:
- La première règle définit la règle @font-face, qui garantit la disponibilité de la police VeinlineRegular.
- La deuxième règle applique la famille de polices VeinlineRegular et fixe la taille de police à 30 points pour tous les éléments de texte du SVG.
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 :
- Dans SVGSVGElementBuilder, un bloc de style est ajouté à l’aide de la méthode AddStyle().
- Dans RuleBuilder, les règles CSS sont définies à l’aide de la méthode AddRule(), en spécifiant des sélecteurs (par exemple, “circle”, “text”) et en appliquant des propriétés (par exemple, couleur de remplissage, couleur de trait, famille de polices) pour cibler les éléments SVG.
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.
- L’utilisation de la classe RuleBuilder simplifie le processus de création et d’application de styles aux éléments SVG, facilitant ainsi la personnalisation de l’apparence des graphiques SVG dans le code C#.
RuleBuilder
offre flexibilité et contrôle sur l’apparence visuelle des éléments SVG.RuleBuilder
fonctionne comme un “constructeur dans un constructeur”, ce qui facilite la création d’objets ou de structures complexes et améliore la lisibilité du code, le rendant plus facile à comprendre.
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
oufill
pour diverses formes et éléments SVG lors du remplissage avec de la peinture, un motif ou un dégradé.