条目

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

让我们知道你对此的感受

单行文本或密码输入

Xamarin.Forms Entry用于单行文本输入。Entry像编辑器视图一样,支持多种键盘类型。另外,Entry可以用作密码字段。

显示定制

设置和阅读文本

与其他文字呈现视图一样,条目公开了该Text属性。Text可以用来设置和阅读由...提交的文字Entry。以下示例演示如何在XAML中设置文本:

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

在C#中:

var MyEntry = new Entry { Text = "I am an Entry" };

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

var text = MyEntry.Text;

注意:Entry可以通过设置其WidthRequest属性来定义宽度。不依赖于Entry基于其Text属性的值定义的宽度。

键盘

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

键盘类型的选项有:

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

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

占位符

Entry可以设置为在不存储用户输入时显示占位符文本。在实践中,这通常以用于澄清适用于给定领域的内容的形式来看待。占位符文本颜色无法自定义,无论TextColor设置如何,都会相同。如果您的设计需要自定义占位符颜色,则需要退回到自定义渲染器。以下将Entry使用“用户名”作为XAML中的占位符:

<Entry Placeholder="Username" />

在C#中:

var MyEntry = new Entry { Placeholder = "Username" };

密码字段

Entry提供IsPassword物业。如果IsPasswordtrue,该字段的内容将呈现为黑色圆圈:

在XAML中:

<Entry IsPassword="true" />

在C#中:

var MyEntry = new Entry { IsPassword = true };

可以使用占位符,其实例Entry被配置为密码字段:

在XAML中:

<Entry IsPassword="true" Placeholder="Password" />

在C#中:

var MyEntry = new Entry { IsPassword = true, Placeholder = "Password" };

颜色

可以通过以下可绑定属性将条目设置为使用自定义背景和文本颜色:

  • TextColor - 设置文本的颜色。
  • BackgroundColor - 设置文本后面显示的颜色。

需要特别注意确保每个平台上的颜色可用。因为每个平台的文本和背景色都有不同的默认值,所以你经常需要设置两者。

使用以下代码设置条目的文本颜色:

在XAML中:

<Entry TextColor="Green" />

在C#中:

var entry = new Entry();
entry.TextColor = Color.Green;

请注意,占位符不受指定的影响TextColor

要设置XAML中的背景颜色:

<Entry BackgroundColor="#2c3e50" />

在C#中:

var entry = new Entry();
entry.BackgroundColor = Color.FromHex("#2c3e50");

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

事件和互动

条目暴露两个事件:

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

已完成

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

void Entry_Completed (object sender, EventArgs e)
{
    var text = ((Entry)sender).Text; //cast sender to access the properties of the Entry
}

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

<Entry Completed="Entry_Completed" />

和C#:

var entry = new Entry ();
entry.Completed += Entry_Completed;

框TextChanged

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

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

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

TextChanged活动可以在XAML中订阅:

<Entry TextChanged="Entry_TextChanged" />

和C#:

var entry = new Entry ();
entry.TextChanged += Entry_TextChanged;
Logo

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

更多推荐