Rule Builder – Configurar estilo SVG – C#

Estilo SVG – SVG Style

El elemento SVG <style> se utiliza para definir estilos internos dentro de un documento SVG. Permite a los desarrolladores aplicar reglas CSS directamente a elementos SVG, proporcionando una forma conveniente de controlar la apariencia de los gráficos SVG.

Aspose.SVG Builder API ofrece la clase SVGStyleElementBuilder, que es un generador de elementos para construir un elemento SVG <style>. Esta clase facilita la creación y configuración de un elemento SVG <style> con reglas CSS.

Este artículo trata sobre la clase RuleBuilder, que es una clase constructora para construir reglas de estilo CSS. Esta clase se utiliza para crear dinámicamente una cadena de estilos CSS estableciendo varios atributos y sus valores.

Rule Builder – clase RuleBuilder

Rule Builder permite a los desarrolladores aplicar reglas CSS para documentos SVG mediante programación dentro del código C#, ofreciendo flexibilidad y control sobre la apariencia visual de los elementos SVG. Este ejemplo muestra cómo crear un elemento SVG <style>, agregarle una regla CSS @font-face y usar el método AddRule() para definir estilos de fuente para elementos de texto dentro de un documento 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    }

Text “font-face.svg file visualization”

Regla @font-face

La regla CSS @font-face le permite especificar fuentes para mostrar texto en páginas web que se pueden descargar desde un servidor remoto o desde la computadora del usuario. La regla define un nombre de familia de fuentes personalizado y especifica la URL de origen del archivo de fuentes.

En el ejemplo anterior, la regla @font-face define una familia de fuentes personalizada llamada "VeinlineRegular". Esta regla garantiza que la fuente esté cargada y disponible para su uso dentro del documento SVG.

Método AddRule()

El método AddRule() es parte del Generador de reglas, que le permite crear reglas CSS en documentos SVG. Se necesitan dos parámetros: el nombre del selector CSS y una expresión lambda que define las propiedades del estilo usando RuleBuilder.

En el ejemplo de C# anterior, se agregan dos reglas:

Constructores dentro de Constructores

SVG Builder API introduce azúcar de sintaxis para refinar aún más el proceso de creación y manipulación de SVG. Esto incluye constructores anidados para varios elementos SVG, lo que proporciona una forma más intuitiva y eficiente de definir estructuras SVG complejas. Un patrón de “builder within a builder” implica el uso de múltiples clases de constructores, donde un constructor está anidado dentro de otro para facilitar la construcción de estructuras o objetos complejos.

El siguiente fragmento de código demuestra cómo utilizar RuleBuilder, que es un ejemplo de un constructor dentro de un constructor, para crear y diseñar gráficos SVG mediante programación:

 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    }

Conclusión

Aspose.SVG for .NET proporciona una función de Generador de reglas que permite a los desarrolladores definir mediante programación reglas CSS para elementos SVG utilizando la API SVG Builder.

Ver también

  • El artículo Element Builders profundiza en los Element Builders utilizados en SVG Builder API. Aprenderá sobre la clase SVGElementBuilder, sus constructores especializados y cómo simplifican la programación SVG.
  • Consulte el artículo Path Builder para obtener más información sobre la clase PathBuilder, diseñada para simplificar la creación y manipulación de rutas SVG. El artículo muestra cómo Path Builder ofrece una sintaxis intuitiva para definir rutas SVG mediante programación, lo que permite a los desarrolladores agilizar el proceso de creación de formas y curvas intrincadas.
  • El artículo Paint Builder trata sobre PaintBuilder, una clase de creación para crear valores de pintura para elementos SVG. Esta clase se utiliza para especificar el valor de los atributos stroke o fill para varias formas y elementos SVG al rellenarlos con pintura, patrón o degradado.
Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.