2016-08-01 12 views
12

Tôi đang cố gắng tạo một SimpleLabelStyle với kích hoạt word wrapping, làm hộp thứ hai của interactive demo. Tuy nhiên, tôi không thể tái tạo nó.Xác định gói từ cho SimpleLabelStyle

tôi đang cố gắng:

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

Nhưng nó không làm việc. Thực tế, trong số documentation, tôi thấy rằng cắt tỉa "được giá trị xác định cách cắt văn bản." (chỉ cần nói "được" chứ không phải "bộ").

Mọi trợ giúp đều được đánh giá cao!

Trả lời

1

Thực tế bạn có thể đặt giá trị - tài liệu này gây hiểu nhầm ở đây. Khu nghỉ dưỡng được tuyên bố READ-ONLYtrong giao diện (xem huy hiệu):

ISimpleLabelStyle.trimming API

Nhưng trường hợp mà bạn đã instanciated thực hiện giao diện và làm cho tài sản READ-WRITE. Rất tiếc tài liệu được kế thừa từ giao diện và chỉ báo duy nhất rằng thuộc tính là READ-WRITE là thiếu huy hiệu READ-ONLY trong trình duyệt API. Bất kỳ tài sản đó không phải là READ-ONLY hoặc WRITE-ONLY là ngầm có thể đọc và ghi nên thiết lập các giá trị sẽ việc sử dụng tài sản trên dụ (SimpleLabelStyle.trimming API)

Lưu ý rằng nếu bạn đang thay đổi giá trị cho một phong cách hiện, sự thay đổi sẽ không hiển thị ngay lập tức. Bạn nên vô hiệu hóa hiển thị của biểu đồ bằng cách sử dụng 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

Cảm ơn bạn đã giải thích chi tiết Sebastian! Xin lỗi vì đã trả lời rất muộn tại bạn, nhưng tôi đã không thể thử nó Tôi cho bạn biết ngay sau khi tôi có thể quay trở lại vấn đề này (một "cảm ơn" lớn trong meanwhi le)! –

0

trimming là chỉ đọc, như được chỉ ra here, vì vậy bạn không thể sử dụng nó để đặt bất kỳ thứ gì. Có vẻ như nó không có ý định đặt kiểu gói cho một đối tượng simpleLabelStyle trực tiếp vì nó không cung cấp tham số không phải là hàm để làm như vậy, nhưng bạn có thể đặt nó tại thời điểm bạn thêm văn bản vào đó. Các hàm addTextplaceText cho phép bạn chuyển thông số cắt tỉa, tham số WORD.

+0

Cảm ơn bạn, điều đó có ý nghĩa. Tôi sẽ cố gắng càng sớm càng tốt và cho bạn ngay bây giờ! –

+0

OK, tôi đang thử cách tiếp cận được đề xuất, nhưng cả 'addText' và' placeText' yêu cầu tham số 'SVGTextElement', và tôi thực sự không biết làm thế nào để cài đặt nó. Tôi đang thử 'yfiles.drawing.TextRenderSupport.addText (node1," Test with long text ", c, new yfiles.geometry.SizeD (10, 10), yfiles.system.StringTrimming.WORD);', với 'c' là một 'Typeface' được định nghĩa trước đó, và' node1' thể hiện 'INode' của tôi (tôi biết, nó sai, nguyên nhân không phải là' SVGTextElement'. Bạn có hiểu biết gì không? Cảm ơn bạn. –

+0

@Andrea: Tôi đã bị ấn tượng bạn sẽ cần cung cấp phần tử 'SimpleLabelStyle' của bạn, vì vậy trong ví dụ ban đầu của bạn, đó sẽ là phần tử lưu trữ trong biến' simpleLabelStyle'. Các phần tử riêng lẻ là các phần tử SVG, vì vậy đó là lý do tại sao chúng được đặt tên theo cách như vậy các tài liệu (mặc dù đã được thành lập, tài liệu không phải là những gì bạn sẽ gọi là đầy đủ ...) – TheThirdMan

Các vấn đề liên quan