编辑

PDF用于离线使用
示例代码:
相关API:

让我们知道你对此的感受

多行文本输入

Editor控件用于接受多行输入。本文将介绍:

定制

设置和阅读文本

编辑器,如其他文字呈现视图,公开的Text属性。Text可以用来设置和阅读由...提交的文字Editor。以下示例演示如何在XAML中设置文本:

<Editor Text="I am an Editor" />

在C#中:

var MyEditor = new Editor { Text = "I am an Editor" };

要阅读文本,请访问TextC#中的属性:

var text = MyEditor.Text;

键盘

用户与用户交互时显示的键盘Editor可以通过Keyboard属性以编程方式设置。

键盘类型的选项有:

  • 默认 - 默认键盘
  • 聊天 - 用于发短信和表情符号有用的地方
  • 电子邮件 - 用于输入电子邮件地址
  • 数字 - 输入数字时使用
  • 电话 - 输入电话号码时使用
  • 网址 - 用于输入文件路径和网址

我们的食谱部分中有每个键盘示例

颜色

Editor可以通过BackgroundColor属性设置为使用自定义背景颜色。需要特别注意确保每个平台上的颜色可用。因为每个平台的文本颜色的默认值都不同,所以您可能需要为每个平台设置自定义背景颜色。有关优化每个平台的UI的更多信息,请参阅使用平台调整

在C#中:

public partial class EditorPage : ContentPage
{
    public EditorPage ()
    {
        InitializeComponent ();
        var layout = new StackLayout { Padding = new Thickness(5,10) };
        this.Content = layout;
        //dark blue on Windows Phone & Android, light blue on iOS
        var editor = new Editor { BackgroundColor = Device.OnPlatform(Color.FromHex("#A4EAFF"), Color.FromHex("#2c3e50"), Color.FromHex("#2c3e50")) };
        layout.Children.Add(editor);
    }
}

在XAML中:

<?xml version="1.0" encoding="UTF-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="TextSample.EditorPage"
Title="Editor Demo">
    <ContentPage.Content>
        <StackLayout Padding="5,10">
            <Editor>
                <Editor.BackgroundColor>
                    <OnPlatform x:TypeArguments="x:Color"
                        iOS="#a4eaff"
                        Android="#2c3e50"
                        WinPhone="#2c3e50" />
                </Editor.BackgroundColor>
            </Editor>
        </StackLayout>
    </ContentPage.Content>
</ContentPage>

确保您选择的背景和文字颜色可在每个平台上使用,并且不要遮盖任何占位符文本。

互动

Editor 公开两件事:

  • TextChanged - 文本在编辑器中更改时引发。提供更改前后的文字。
  • 完成 - 当用户通过按键盘上的返回键结束输入时提高。

已完成

Completed事件用于对完成与...的交互作出反应EditorCompleted当用户通过输入键盘上的返回键结束字段输入时,它被提升。事件的处理程序是一个通用事件处理程序,采用发件人和EventArgs

void EditorCompleted (object sender, EventArgs e)
{
    var text = ((Editor)sender).Text; // sender is cast to an Editor to enable reading the `Text` property of the view.
}

完成的事件可以在代码和XAML中订阅:

在C#中:

public partial class EditorPage : ContentPage
{
    public EditorPage ()
    {
        InitializeComponent ();
        var layout = new StackLayout { Padding = new Thickness(5,10) };
        this.Content = layout;
        var editor = new Editor ();
        editor.Completed += EditorCompleted;
        layout.Children.Add(editor);
    }
}

在XAML中:

<?xml version="1.0" encoding="UTF-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="TextSample.EditorPage"
Title="Editor Demo">
    <ContentPage.Content>
        <StackLayout Padding="5,10">
            <Editor Completed="EditorCompleted" />
        </StackLayout>
    </ContentPage.Content>
</Contentpage>

框TextChanged

TextChanged事件用于对字段内容的更改做出反应。

TextChanged每当TextEditor变化时都会提出。事件的处理程序需要一个实例TextChangedEventArgsTextChangedEventArgs提供对Editor Text通过OldTextValueNewTextValue属性的旧的和新的值的访问:

void EditorTextChanged (object sender, TextChangedEventArgs e)
{
    var oldText = e.OldTextValue;
    var newText = e.NewTextValue;
}

完成的事件可以在代码和XAML中订阅:

代码:

public partial class EditorPage : ContentPage
{
    public EditorPage ()
    {
        InitializeComponent ();
        var layout = new StackLayout { Padding = new Thickness(5,10) };
        this.Content = layout;
        var editor = new Editor ();
        editor.TextChanged += EditorTextChanged;
        layout.Children.Add(editor);
    }
}

在XAML中:

<?xml version="1.0" encoding="UTF-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="TextSample.EditorPage"
Title="Editor Demo">
    <ContentPage.Content>
        <StackLayout Padding="5,10">
            <Editor TextChanged="EditorTextChanged" />
        </StackLayout>
    </ContentPage.Content>
</ContentPage>
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐