如何在xaml中设置允许用户在TextBlock中输入的字符数?我会在Model上做这件事,还是创建某种自定义属性来处理它?
ff29svar1#
TextBlock没有MaxLength,Label.TextBox也没有。用户不能在TextBlock中输入,除非您修改了它。它真的是一个你想要限制的TextBlock还是一个TextBox?如果它是一个TextBox,你可以简单地使用MaxLength属性。
<TextBox Name="textBox1" MaxLength="5" />
字符串如果它确实是你正在使用的TextBlock,并且以某种方式允许用户向其中输入数据,那么切换到使用TextBox。如果它是你想要的TextBlock样式,你可以将TextBox样式设置为看起来像TextBlock。
wydwbb8l2#
在不创建自定义控件的情况下,您有几个选项。您可以尝试调整TextBlock的大小以完全适合您预期的文本,但这会因为不同的输入或不同的字体大小而变得非常难看。相反,您可以验证要分配给TextBlock.Text属性的字符串的字符长度,并在必要时对其进行限制。
TextBlock
TextBlock.Text
string s = "new text"; if (s.Length > maxLen) textBlock1.Text = s.Substring(0, maxLen); else textBlock1.Text = s;
字符串另一种选择是使用TextWrapping和TextTrimming属性。可以将以下属性添加到TextBlock xaml中以添加换行和“...”以表示文本超出TextBlock的大小。
TextWrapping
TextTrimming
<TextBlock ... TextWrapping="Wrap" TextTrimming="CharacterEllipsis" />
型
kcrjzv8t3#
您可以使用Textblock的“TextTrimming”属性。设置TextTrimming =“TexterEllipsis”。您可能需要使用Width来管理您真正想要显示的字符数。
<TextBlock TextTrimming="CharacterEllipsis" Text="{Binding Subject}"/>
字符串
knsnq2tg4#
设置MaxHeight =“SomeHeight”并使用
<TextBlock TextTrimming="CharacterEllipsis" Text="{Binding LongText}"
字符串或者使用类似于Textblock的TextBox,通过设置
<TextBox IsReadOnly="True" Background="Transparent" BorderThickness="0" MaxLength="100"
e4yzc0pl5#
另一种方法是使用StringFormat格式化所显示的字符串。例如,我想显示一个decimal x,但只能显示小数点后的5位数:
decimal x
<TextBlock Text="{Binding x, StringFormat={}{0:F5}}"/>
字符串参见Use StringFormat to add a string to a WPF XAML binding了解更多示例。
5条答案
按热度按时间ff29svar1#
TextBlock没有MaxLength,Label.TextBox也没有。用户不能在TextBlock中输入,除非您修改了它。
它真的是一个你想要限制的TextBlock还是一个TextBox?如果它是一个TextBox,你可以简单地使用MaxLength属性。
字符串
如果它确实是你正在使用的TextBlock,并且以某种方式允许用户向其中输入数据,那么切换到使用TextBox。如果它是你想要的TextBlock样式,你可以将TextBox样式设置为看起来像TextBlock。
wydwbb8l2#
在不创建自定义控件的情况下,您有几个选项。
您可以尝试调整
TextBlock
的大小以完全适合您预期的文本,但这会因为不同的输入或不同的字体大小而变得非常难看。相反,您可以验证要分配给
TextBlock.Text
属性的字符串的字符长度,并在必要时对其进行限制。字符串
另一种选择是使用
TextWrapping
和TextTrimming
属性。可以将以下属性添加到TextBlock
xaml中以添加换行和“...”以表示文本超出TextBlock
的大小。型
kcrjzv8t3#
您可以使用Textblock的“TextTrimming”属性。设置TextTrimming =“TexterEllipsis”。您可能需要使用Width来管理您真正想要显示的字符数。
字符串
knsnq2tg4#
设置MaxHeight =“SomeHeight”并使用
字符串
或者使用类似于Textblock的TextBox,通过设置
型
e4yzc0pl5#
另一种方法是使用StringFormat格式化所显示的字符串。
例如,我想显示一个
decimal x
,但只能显示小数点后的5位数:字符串
参见Use StringFormat to add a string to a WPF XAML binding了解更多示例。