在XAML中设置TextBlock的最大chr长度

gri*_*egs 16 xaml

如何设置允许用户在xaml中的T​​extBlock中输入的字符数?

我会在模型上创建它还是创建某种自定义属性来处理它?

Rhy*_*ous 11

TextBlock没有MaxLength,Label也没有.TextBox有.除非您对其进行了修改,否则用户无法输入TextBlock.

它真的是你想要限制的TextBlock还是你的意思是TextBox?如果是TextBox,您只需使用MaxLength属性即可.

<TextBox Name="textBox1" MaxLength="5" />
Run Code Online (Sandbox Code Playgroud)

如果它确实是一个TextBlock,你正在使用它并以某种方式允许用户输入数据,然后切换到使用TextBox.如果它是您所使用的TextBlock样式,则可以将TextBox设置为看起来像TextBlock.


Ada*_*m S 8

如果不创建自定义控件,您可以选择一些选项.

您可以尝试TextBlock确切地调整大小以适合您的预期文本,但是这会很快变得难以尝试考虑不同的输入或不同的字体大小.

相反,您可以验证要分配给TextBlock.Text属性的字符串的字符长度,并在必要时对其进行限制.

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

另一种选择是使用TextWrappingTextTrimming属性.可以将以下属性添加到TextBlockxaml以添加换行,并使用"..."表示文本的大小超出了TextBlock.

<TextBlock ... TextWrapping="Wrap" TextTrimming="CharacterEllipsis" />
Run Code Online (Sandbox Code Playgroud)


zam*_*dar 5

您可以使用文本块的“TextTrimming”属性。设置 TextTrimming = "CharacterEllipsis"。您可能需要使用Width来管理您真正想要显示的字符数。

<TextBlock TextTrimming="CharacterEllipsis" Text="{Binding Subject}"/>
Run Code Online (Sandbox Code Playgroud)