ich habe gerade frisch LL27 installiert, um das SVG Feature anzuschauen.
Dazu zwei Anmerkungen:
Was ist am SVG Code falsch? In SVG Editoren wird es korrekt dargestellt
In früheren LL Versionen kann immer die Warnung: “… wurde mit älterer Version erstellt. Nach dem Speicher kann es nicht mehr mit der alten Version geöffnet werden…” Ist das bewusst weg?
a) Ich habe mit STRG+Umschalt+F12 die Version überprüft, es ist Version : 27.0.2021.29216 (21-10-13 16:44)F
wenn Sie Ihre SVG Dateien, mit der Funktion Drawing('<SVGCode>') innerhalb einer Spalte vom Typ Bild hinzufügen, sollten die SVG Dateien, ohne Probleme angezeigt werden können. Sollte dies nicht funktionieren, würden wir Sie bitten, uns Ihr Projekt bereitzustellen.
Die Warnmeldung erscheint nur dann, wenn wir am Dateiformat gravierende Änderungen vornehmen müssen, welche die Kompatibilität mit alten Versionen bricht. Dazu wird intern die Dateiversion hochgezählt. Sofern dies nicht der Fall ist, erfolgt keine Warnmeldung.
mit dem Projekt war die .lst Datei gemeint, richtig.
Kann es möglicherweise sein, dass Sie das Verhalten mit der Beta Version getestet haben? Wir würden Sie bitten dies einmal zu überprüfen, da wir mit der Release Version Ihren SVG Code, ohne Probleme darstellen können. Zur besseren Veranschaulichung haben wir Ihnen auch unser Sample bereitgestellt, welches Sie mit der mitgelieferten Beispielanwendung öffnen können:
danke für das Anhängen der .LST Datei. Wir haben Ihnen in unserer vorherigen Nachricht ein Beispiel angehängt. Wird denn dort das SVG, ordnungsgemäß wiedergegeben?
Dann würde das bedeuten, dass kein genereller Fehler vorliegt und vermutlich der Wert in Ihrer Datenquelle nicht Ordnungesgemäß hinterlegt ist oder dieser wird als falscher Datentyp, an List & Label übergeben.
Dies können Sie auch mit unserem Debugger Tool “Debwin4” prüfen.
Gerne können Sie in unserem Supportportal unter https://www.combit.net/supportportal/ sonst auch einen Support-Case eröffnen und uns Ihre Datenquelle zukommen lassen. Bitte kopieren Sie dabei die relevanten Informationen aus diesem Thread in die Beschreibung.
wir haben versucht, das Verhalten nachzustellen. Wie Sie bereits richtig vermutet haben, ist das Problem, dass Sie einzelne Anführungszeichen in Ihrem C# Quellcode nicht richtig “escaped” haben.
Dadurch wurden in List & Label teilweise Anführungszeichen doppelt oder teilweise auch gar nicht übergeben. Alle möglichen Escape Sequenzen finden Sie auf der Website von Microsoft:
Teilweise waren auch Leerzeichen in den einzelnen SVG Attributen vorhanden. Diese Eigenschaften konnten dann nicht richtig geparst werden.
Wir haben Ihren Beispielcode korrigiert und auch in Form eines C# Projekts angehängt.
Eine korrekte Initisialisíerung einer SVG Variable, zur Verwendung in List & Label würde zum Beispiel wie folgt aussehen:
Die Leerzeichen habe ich nicht wahrgenommen, als Fehlerquelle kenne ich sie jetzt. Die von mir verwendeten Escape Sequenzen haben meiner Ansicht nach schon gepasst. Das einfache Hochkomma am Anfang und am Schluss war falsch
Dazu die LL Doku zum LL27 Update:
Die Designer-Funktion Drawing() unterstützt jetzt direkten SVG-Input (z.B. Dra- wing('<svg height="100" width="100"><circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="red" /></svg>') ).
→ Hier sind die einfachen Anführungszeichen enthalten. Ich habe sie übernommen in der Vermutung, dass damit SVG und Files auseinandergehalten werden.
Das ist der SVG string: string svg = @"<circle cx="“25"” cy="“25"” r="“25"” fill=""#{0}""/><text x="“25"” y="“25"” fill=""{1}"" font-size="“20px”" text-anchor="“middle”" alignment-baseline="“central”" dy="“0.25em”" font-family="“Arial”">{2}";
So wird er dann konkret ausgefüllt:
var farbe = ColorHelper.FromInt32RedGreenBlue(kat.Red, kat.Green, kat.Blue);
string schriftfarbe = (ColorHelper.GetFontColor(farbe) == Brushes.White) ? “White” : “Black”;
this._kategorien.Add(new KategorieLegende(kat.ConfigKey, string.Format(svg, ColorHelper.FromRGB2Hex(kat.Red, kat.Green, kat.Blue), schriftfarbe, kat.ConfigString)));
In einem anderen Posting war von Width und Height im SVG die Rede. Muss/Soll ich die Größe des Kreises nicht absolut festlegen?
wenn Sie die Auflösung erhöhen möchten, müssen Sie lediglich die Auflösung in Ihrem Code anpassen. Wenn Sie die Auflösung beispielsweise auf 2500px herraufsetzen, so wird das generierte SVG auch entsprechend scharf gerendert.
danke für Ihre Rückmeldung, die mich allerdings in meinem bisherigen Verständnis von SVG als Vektorformat stark verunsichert hat. Auflösung und Vektorformat bringe ich gedanklich nicht unter einen Hut.
Wenn ich den oben angeführten svg string mit 2500 etc. verwenden, dauert das Laden und Anzeigen ca. 5-10 so lange.
Ich habe dann mit der Größe experimentiert. Möglicherweise war die Größe 25 zum Dividieren und Skalieren von mir unglücklich gewählt. Ich habe es jetzt auf 100 umgestellt und es passt.