我有一个很大的文本,我想显示它。我正在为此使用一个标签。但这个标签不显示全文。我想为这个标签垂直滚动。
Grid mainGrid = new Grid
{
HeightRequest = 40,
BackgroundColor = Color.White,
Padding = 20,
RowDefinitions =
{
new RowDefinition { Height = new GridLength(25, GridUnitType.Star) },//0 Title
new RowDefinition { Height = new GridLength(5, GridUnitType.Star) },//1 Line
new RowDefinition { Height = new GridLength(50, GridUnitType.Star) },//2 This is for MessageLabel
new RowDefinition { Height = new GridLength(20, GridUnitType.Star) },//3 OK-Cancel
}
};
MessageLabel = new Label
{
FontAttributes = FontAttributes.None,
FontSize = 18,
HorizontalTextAlignment = TextAlignment.Start,
VerticalTextAlignment = TextAlignment.Center,
HorizontalOptions = LayoutOptions.StartAndExpand,
TextColor = Color.Black,
};
mainGrid.Children.Add(MessageLabel, 0, 2);
我已经尝试了不同的VerticalOptions
为这个标签,但没有任何工作。
如果标签不支持此控件,我可以使用其他控件吗?
3条答案
按热度按时间kh212irz1#
如果你想垂直滚动,你必须使用一个滚动视图,把你的标签/网格包裹在一个滚动视图中,然后你就可以显示所有的文本。
31moq8wy2#
谢谢布鲁诺·卡塞罗的提示,我已经用他提供的提示解决了这个问题。
t3psigkw3#
如果你想用XAML来做,
<Scrollview>
中的Label
在XAML中很简单:
最好使用MVVM绑定或通过C#代码隐藏指定长文本:
x一个一个一个一个x一个一个二个x
为了提高性能,最好使用MVVM绑定。
在XAML或C#Code Behind(In the View)中定义长字符串、列表或变量会产生大量的性能开销和滞后问题。因此,总是首选使用MVVM模式来获得最佳的无滞后性能。