2012-03-20 123 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"