Xamarin.Forms 用户界面——控件——Text——Editor
编辑PDF用于离线使用下载PDF示例代码:文本相关API:编辑器API让我们知道你对此的感受多行文本输入该Editor控件用于接受多行输入。本文将介绍:自定义 -键盘和颜色选项。交互性 -可以听取提供交互性的事件。定制设
编辑
多行文本输入
该Editor
控件用于接受多行输入。本文将介绍:
定制
设置和阅读文本
编辑器,如其他文字呈现视图,公开的Text
属性。Text
可以用来设置和阅读由...提交的文字Editor
。以下示例演示如何在XAML中设置文本:
<Editor Text="I am an Editor" />
在C#中:
var MyEditor = new Editor { Text = "I am an Editor" };
要阅读文本,请访问Text
C#中的属性:
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
事件用于对完成与...的交互作出反应Editor
。Completed
当用户通过输入键盘上的返回键结束字段输入时,它被提升。事件的处理程序是一个通用事件处理程序,采用发件人和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
每当Text
有Editor
变化时都会提出。事件的处理程序需要一个实例TextChangedEventArgs
。TextChangedEventArgs
提供对Editor
Text
通过OldTextValue
和NewTextValue
属性的旧的和新的值的访问:
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>
更多推荐
所有评论(0)