2016-08-01 6 views
12

Ich versuche, eine SimpleLabelStyle mit der word wrapping aktiviert zu erstellen, als die zweite Box der interactive demo. Ich kann es jedoch nicht reproduzieren.Definieren Sie das Umbruchwort für einen SimpleLabelStyle

Ich versuche:

var /**yfiles.drawing.SimpleLabelStyle*/ simpleLabelStyle = new yfiles.drawing.SimpleLabelStyle(); 
simpleLabelStyle.trimming = yfiles.system.StringTrimming.WORD; 

Aber es funktioniert nicht. In der Tat, in der documentation, sehe ich, dass Trimmen "bekommt den Wert, der bestimmt, wie der Text zu trimmen." (es sagt nur "bekommt" und nicht "setzt").

Jede Hilfe wird geschätzt!

Antwort

1

Eigentlich können Sie setzen Sie den Wert - diese Dokumentation ist hier irreführend. Das Anwesen ist READ-ONLYin der Schnittstelle deklariert (das Abzeichen sehen):

ISimpleLabelStyle.trimming API

Aber die Instanz, die Sie instanziiert haben implementiert die Schnittstelle und macht die Eigenschaft READ-WRITE. Leider wird die Dokumentation von der Schnittstelle geerbt und der einzige Hinweis darauf, dass die Eigenschaft READ-WRITE lautet, ist, dass das READ-ONLY-Emblem im API-Browser fehlt. Jede Eigenschaft, die nicht READ-ONLY oder WRITE-ONLY ist implizit lesbar und beschreibbar so den Wert Einstellung wird Arbeit mit der Eigenschaft auf der Instanz (SimpleLabelStyle.trimming API)

Beachten Sie, wenn Sie den Wert für einen vorhandenen Stil ändern, wird die Änderung nicht sofort sichtbar sein. Sie sollten die grafische Darstellung des Displays mit der IGraph.invalidateDisplays() API

var style = new yfiles.drawing.SimpleLabelStyle() 
style.trimming = yfiles.system.StringTrimming.ELLIPSIS_WORD; 
graph.setLabelStyle(label, style); 

// and later 
style.trimming = yfiles.system.StringTrimming.ELLIPSIS_CHARACTER; 
graph.invalidateDisplays(); 
+0

Vielen Dank für die ausführliche Erklärung Sebastian! Entschuldigung, dass ich sehr spät auf Sie antwortete, aber ich konnte es noch nicht versuchen Ich lasse es Sie wissen, sobald ich auf dieses Problem zurückkommen kann (ein großes Dankeschön in der Mitte) le)! –

0

trimming ist schreibgeschützt, wie angegeben here, so dass Sie es nicht verwenden können, um irgendetwas einzustellen.

Es scheint, dass es nicht beabsichtigt ist, einen Umhüllungsstil für ein simpleLabelStyle-Objekt direkt festzulegen, da es weder einen Parameter noch eine Funktion dafür bereitstellt, Sie können es jedoch zu dem Zeitpunkt festlegen, zu dem Sie Text hinzufügen. Mit den Funktionen addText und placeText können Sie einen Trimmparameter übergeben, der das Argument WORD annimmt.

+0

Danke ungültig machen, macht es Sinn, in der Tat. Ich werde es versuchen, sobald ich kann und lass dich jetzt! –

+0

OK, ich versuche den vorgeschlagenen Ansatz, aber sowohl 'addText' als auch' placeText' erfordern einen 'SVGTextElement' Parameter, und ich habe buchstäblich keine Idee, wie ich das einstellen soll. Ich versuche 'yfiles.drawing.TextRenderSupport.addText (node1," Test mit langem Text ", c, new yfiles.geometry.SizeD (10, 10), yfiles.system.StringTrimming.WORD);', mit 'c' eine "Schrift", die vorher definiert wurde, und "Knoten1" meine "INode" -Instanz (ich weiß, es ist falsch, denn es ist kein 'SVGTextElement'. Haben Sie irgendwelche Einsichten? Danke. –

+0

@Andrea: Ich war unter dem Eindruck Sie müssten also Ihr 'SimpleLabelStyle'-Element angeben, also wären in Ihrem ursprünglichen Beispiel die Elementspeicher in der' simpleLabelStyle' -Variablen. Die einzelnen Elemente sind SVG-Elemente, weshalb sie in so genannt werden die Dokumentation (obwohl wie bereits festgestellt, ist die Dokumentation nicht das, was Sie als erschöpfend bezeichnen würden ...) – TheThirdMan

Verwandte Themen