为 SimpleLabelStyle 定义自动换行

Define word wrapping for a SimpleLabelStyle

我正在尝试创建一个启用 word wrappingSimpleLabelStyle,作为 interactive demo 的第二个框。但是,我无法重现它。

我正在尝试:

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

但它不起作用。事实上,在 documentation 中,我看到 trimming "gets 确定如何 trim 文本的值.”(它只是说 "gets" 而不是 "sets")。

感谢任何帮助!

trimming 是只读的,如 here 所示,因此您不能使用它来设置任何内容。

它似乎不打算直接为 simpleLabelStyle 对象设置环绕样式,因为它既不提供参数也不提供这样做的函数,但您可以在添加文本时设置它它。 addText and placeText 函数允许您传递一个修剪参数,该参数将采用 WORD 参数。

实际上您 可以 设置该值 - 此文档在这里具有误导性。 属性 在接口 中被声明为 READ-ONLY (见徽章):

ISimpleLabelStyle.trimming API

但是您实例化的实例实现了接口并使 属性 READ-WRITE。不幸的是,文档是从界面继承的,属性 是可读写的唯一迹象是 API 浏览器中缺少 READ-ONLY 标志。任何不是 READ-ONLYWRITE-ONLY 的 属性 都是隐式可读和可写的,因此设置值 使用 属性实例 (SimpleLabelStyle.trimming API)

请注意,如果您更改现有样式的值,更改不会立即可见。您应该使用使图表的显示无效 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();