Xaml 如何限制可装订标签的最大长度?
我有一个绑定到视图模型的标签。有时标签的文本值只有几个字符,但有时超过20个字符Xaml 如何限制可装订标签的最大长度?,xaml,xamarin.forms,Xaml,Xamarin.forms,我有一个绑定到视图模型的标签。有时标签的文本值只有几个字符,但有时超过20个字符 如何限制标签文本的最大长度?您可以使用转换器: public class LabelMaxLengthConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { string labelText =
如何限制标签文本的最大长度?您可以使用转换器:
public class LabelMaxLengthConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
string labelText = value as string;
if (labelText == null)
return value;
const int maxLength = 20;
if (labelText.Length > maxLength)
return labelText.Substring(0, maxLength);
else
return labelText;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
在xaml中,首先在页面的资源中定义转换器:
<ContentPage.Resources>
<converters:LabelMaxLengthConverter x:Key="LabelMaxLengthConverter" />
</ContentPage.Resources>
最后,在标签中,将转换器应用于绑定:
<Label Text="{Binding LabelText, Converter={StaticResource LabelMaxLengthConverter}}" />
您可以使用转换器:
public class LabelMaxLengthConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
string labelText = value as string;
if (labelText == null)
return value;
const int maxLength = 20;
if (labelText.Length > maxLength)
return labelText.Substring(0, maxLength);
else
return labelText;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
在xaml中,首先在页面的资源中定义转换器:
<ContentPage.Resources>
<converters:LabelMaxLengthConverter x:Key="LabelMaxLengthConverter" />
</ContentPage.Resources>
最后,在标签中,将转换器应用于绑定:
<Label Text="{Binding LabelText, Converter={StaticResource LabelMaxLengthConverter}}" />
检查LineBreakMode属性: 您可以将标签的LineBreakMode设置为TailTruncation,以使标签截断任何不适合其分配空间的字符,并将其替换为省略号
<Label Text="{Binding LabelText}" LineBreakMode="TailTruncation" />
然后,您只需要将标签的分配宽度限制为可接受的大小。如何执行此操作取决于您的特定场景。请查看LineBreakMode属性: 您可以将标签的LineBreakMode设置为TailTruncation,以使标签截断任何不适合其分配空间的字符,并将其替换为省略号
<Label Text="{Binding LabelText}" LineBreakMode="TailTruncation" />
然后,您只需要将标签的分配宽度限制为可接受的大小。如何做到这一点取决于您的具体情况