2012-03-20 37 views

回答

9

TextBlock沒有MaxLength,Label也沒有。 TextBox的確。用戶不能輸入到TextBlock中,除非您修改了它。

它是一個真正的TextBlock,你想限制還是你的意思是一個TextBox?如果它是一個TextBox,你可以簡單地使用MaxLength屬性。

<TextBox Name="textBox1" MaxLength="5" /> 

如果真的是你正在使用並以某種方式允許用戶將數據輸入到它TextBlock中,然後切換到使用TextBox。如果它是後面的TextBlock樣式,則可以將TextBox設置爲TextBlock。

+0

的MaxLength與

<TextBlock TextTrimming="CharacterEllipsis" Text="{Binding LongText}" 

,或者使用文本框狀文本塊修剪溢出是行不通的。用戶可以鍵入比5更多的字符。 – user1624552 2017-08-02 10:09:58

+0

您確定您有一個樣式化的文本框而不是TextBlock嗎? – Rhyous 2017-08-02 21:54:29

7

沒有創建自定義控件,您有幾個選項。

您可以嘗試調整TextBlock的大小以準確地符合您的預期文本,但這會變得很難以快速嘗試考慮不同的輸入或不同的字體大小。

相反,您可以驗證要分配給TextBlock.Text屬性的字符串的字符長度,並在必要時限制它。

string s = "new text"; 
if (s.Length > maxLen) 
    textBlock1.Text = s.Substring(0, maxLen); 
else 
    textBlock1.Text = s; 

另一種選擇是使用TextWrappingTextTrimming性質。可以將以下屬性添加到您的TextBlock xaml以添加換行和「...」以表示文字超出TextBlock的大小。

<TextBlock ... TextWrapping="Wrap" TextTrimming="CharacterEllipsis" /> 
2

您可以使用文本塊的'TextTrimming'屬性。設置TextTrimming =「CharacterEllipsis」。您可能需要使用寬度來管理您想要顯示的字符數。

<TextBlock TextTrimming="CharacterEllipsis" Text="{Binding Subject}"/> 
0

任一組MaxHeight = 「SomeHeight」,並通過設置

<TextBox IsReadOnly="True" Background="Transparent" BorderThickness="0" 
MaxLength="100"