1. 创建项目
启动 Visual Studio,新建一个空白的 Xamarin.Forms 应用,项目名称为:
EditorTutorial
2. 创建基本界面
在 MainPage.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="EditorTutorial.MainPage">
<StackLayout Margin="20,35,20,20">
<Editor Placeholder="Enter multi-line text here"
HeightRequest="200" />
</StackLayout>
</ContentPage>Code language: HTML, XML (xml)
说明
- 界面由一个
StackLayout和一个Editor组成。 Editor.Placeholder属性用于设置占位符文本,在Editor第一次显示时呈现。HeightRequest属性用于指定Editor的高度(单位为设备无关单元)。
3. 响应文本更改
3.1 在 XAML 中绑定事件
修改 MainPage.xaml 中的 Editor 声明,为 TextChanged 和 Completed 事件设置处理程序:
<Editor Placeholder="Enter multi-line text here"
HeightRequest="200"
TextChanged="OnEditorTextChanged"
Completed="OnEditorCompleted" />Code language: HTML, XML (xml)
TextChanged事件绑定到OnEditorTextChanged方法Completed事件绑定到OnEditorCompleted方法
3.2 在后台代码中实现事件处理程序
在 MainPage.xaml.cs 中添加以下代码:
void OnEditorTextChanged(object sender, TextChangedEventArgs e)
{
string oldText = e.OldTextValue;
string newText = e.NewTextValue;
}
void OnEditorCompleted(object sender, EventArgs e)
{
string text = ((Editor)sender).Text;
}Code language: JavaScript (javascript)
事件说明
- TextChanged 事件
- 当
Editor中的文本发生变化时触发 sender为触发事件的Editor对象TextChangedEventArgs提供:OldTextValue:文本变化前的值NewTextValue:文本变化后的值
- 当
- Completed 事件
- 当编辑完成时触发
- 触发方式包括:
- 取消
Editor焦点 - 在 iOS 上点击“完成”按钮
- 取消
- 可通过
sender获取当前Editor的文本
4. 自定义 Editor 行为
在 MainPage.xaml 中,修改 Editor 声明以自定义其行为:
<Editor Placeholder="Enter multi-line text here"
AutoSize="TextChanges"
MaxLength="200"
IsSpellCheckEnabled="false"
IsTextPredictionEnabled="false" />Code language: HTML, XML (xml)
属性说明
| 属性 | 说明 |
|---|---|
AutoSize="TextChanges" | 当输入文本增加时,Editor 高度自动增加;删除文本时高度自动减小 |
MaxLength="200" | 限制 Editor 允许输入的最大字符数 |
IsSpellCheckEnabled="false" | 禁用拼写检查 |
IsTextPredictionEnabled="false" | 禁用文本预测和自动文本预测 |
5. 总结
本教程介绍了以下内容:
- 创建 Xamarin.Forms 项目
- 使用
Editor控件 - 处理
TextChanged和Completed事件 - 自定义
Editor的自动大小、长度限制和输入行为

Previous: Xamarin.Forms Entry文本输入
Next: Xamarin.Forms Image图像控件