如何在Xamarin表单中添加垂直滚动标签?

mi7gmzs6  于 2023-01-15  发布在  其他
关注(0)|答案(3)|浏览(129)

我有一个很大的文本,我想显示它。我正在为此使用一个标签。但这个标签不显示全文。我想为这个标签垂直滚动。

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为这个标签,但没有任何工作。
如果标签不支持此控件,我可以使用其他控件吗?

kh212irz

kh212irz1#

如果你想垂直滚动,你必须使用一个滚动视图,把你的标签/网格包裹在一个滚动视图中,然后你就可以显示所有的文本。

<ScrollView>

<Grid/>

</ScrollView/>
31moq8wy

31moq8wy2#

谢谢布鲁诺·卡塞罗的提示,我已经用他提供的提示解决了这个问题。

MessageLabel = new Label
{
    FontAttributes = FontAttributes.None,
    FontSize = 18,
    HorizontalTextAlignment = TextAlignment.Start,
    VerticalTextAlignment = TextAlignment.Center,
    HorizontalOptions = LayoutOptions.StartAndExpand,
    TextColor = Color.Black
};

ScrollView scroll = new ScrollView()
{
    Orientation = ScrollOrientation.Vertical
};

scroll.Content = MessageLabel;
t3psigkw

t3psigkw3#

如果你想用XAML来做,<Scrollview>中的Label
在XAML中很简单:

<ScrollView>
    <Label Text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam imperdiet odio vitae nulla ornare gravida. Quisque dictum nulla felis, feugiat rutrum odio ultricies id. Sed rutrum, lacus ut feugiat congue, quam libero porta dolor, quis ultrices tortor risus eu est. Praesent finibus tincidunt magna, eu lacinia nibh consequat non." />
</ScrollView>

最好使用MVVM绑定或通过C#代码隐藏指定长文本:
x一个一个一个一个x一个一个二个x
为了提高性能,最好使用MVVM绑定。
在XAML或C#Code Behind(In the View)中定义长字符串、列表或变量会产生大量的性能开销和滞后问题。因此,总是首选使用MVVM模式来获得最佳的无滞后性能。

相关问题