簡體   English   中英

調整標簽大小

[英]Resizing Labels

我在WPF中有一個帶有很多標簽的圖表。 這些標簽上的文本是動態加載的,並且隨時可能更改。 如果我將寬度設置為自動,則這些標簽可能會重疊,從而使文本不可讀。

圖表支持多種尺寸,因此,如果圖表變大,則將調整條形圖的大小,並留出更多的文本空間。 現在,我想將文本調整為可用的空間。 如果它變得太小,我不想再顯示標簽(可以使用工具提示,因此用戶仍然可以獲得所需的信息)。 考慮字符串“ Case 1,blah blah”,可能沒有足夠的空間來顯示整個字符串,而只是第一個單詞。 在這種情況下,我希望字符串為“ Case 1 ..”,並帶有..指示工具提示中還有更多信息。

我可以確定字符串的可用長度。 但是,如何確定單個字母所占的空間? 當然,我也可以只是調整標簽的大小,但是隨后它會在任何地方切斷字符串,這可能對用戶沒有幫助(而且看起來很丑)。

有任何想法嗎?

如果可以使用TextBlocks代替標簽,則它們具有TextTrimming屬性,該屬性將為您做到最接近的字符或最接近的單詞。


盡管您似乎對TextTrimming屬性感到滿意,但我將對其進行編輯以添加TextBox控件具有GetRectFromCharacterIndex方法,該方法將允許您在屏幕上找到一個或多個字符的大小,只要字體設置與您的標簽匹配即可。 如果您想在標簽的特定位置而不是最接近的字符/單詞處進行剪裁,這可能會很有用。

不是WPF的專家,但我認為您需要使用代碼而不是XAML來執行此操作。

首先獲取文本可用空間的實際像素寬度。 然后查看XAML前端上使用的字符集,點間距等,然后從中計算每個字符所需的像素寬度。

您還可以查看更改字符大小以及減少標簽長度的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM