net maui 中edtor 如何实现滚动条 并且在添加内容后自动滚动到最后

张中伟 80 信誉分
2024-12-31T10:51:49.29+00:00

net maui 中edtor 如何实现滚动条 并且在添加内容后自动滚动到最后<scrollview>实现不了效果。

.NET MAUI
.NET MAUI
一种 Microsoft 开源框架,用于构建跨移动设备、平板电脑、台式机的原生设备应用程序。
132 个问题
C#
C#
一种面向对象的类型安全的编程语言,它起源于 C 语言系列,包括对面向组件的编程的支持。
205 个问题
0 个注释 无注释
{count} 票

接受的答案
  1. Leon Lu (Shanghai Wicresoft Co,.Ltd.) 80,206 信誉分 Microsoft 供应商
    2025-01-01T01:51:13.5133333+00:00

    你好,

    在 .NET MAUI 中,Editor 控件是多行文本输入控件,它不自带滚动条,但可以通过设置其属性和布局来实现滚动效果,并在添加内容后自动滚动到最后。以下是实现方法:

    ScrollView 包裹 Editor,提供额外的滚动功能, 并且设置了ScollView的固定高度。 VerticalScrollBarVisibility="Always" 确保滚动条总是可见。

    <ScrollView HeightRequest="100" x:Name="scrollView"  VerticalScrollBarVisibility="Always">
    <Editor
             x:Name="EditorControl"
             Text="15646321412412 this is a text"
             VerticalOptions="Start"
             HorizontalOptions="FillAndExpand"
             BackgroundColor="LightGray" 
             TextColor="Black"
             AutoSize="TextChanges"
              TextChanged="EditorControl_TextChanged"
         />
    </ScrollView>
    

    当Editor 的TextChanged 事件执行时,使用 ScrollView 提供的 ScrollToAsync 方法可以实现自动滚动:

    private void EditorControl_TextChanged(object sender, TextChangedEventArgs e)
    {
     
        // 强制滚动到内容的最后
        MainThread.BeginInvokeOnMainThread(async () =>
        {
            await Task.Delay(50); // 确保布局完成
            await scrollView.ScrollToAsync(0, EditorControl.Height, true);
        });
    }
    

    如果答案是正确的,请点击“接受答案”并点赞。 如果您对此答案还有其他疑问,请点击“评论”。

    注意:如果您想接收相关电子邮件,请按照我们的文档中的步骤启用电子邮件通知 此线程的通知。

    0 个注释 无注释

0 个其他答案

排序依据: 非常有帮助

你的答案

问题作者可以将答案标记为“接受的答案”,这有助于用户了解已解决作者问题的答案。