开发者社区> wangccsy> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

第十五章:交互式界面(八)

简介:
+关注继续查看

键入文本

Xamarin.Forms定义了三个用于从用户获取文本输入的视图:

  • 输入单行文本。
  • 多行文本的编辑器。
  • SearchBar专门用于搜索操作的单行文本。

Entry和Editor都源自InputView,它源自View。 SearchBar直接从View派生。
如果输入的文本超出视图的宽度,则Entry和SearchBar都会实现水平滚动。 编辑器实现自动换行,并且能够垂直滚动文本以提高其高度。
键盘和焦点
Entry,Editor和SearchBar与所有其他视图的不同之处在于它们使用手机的屏幕键盘,有时也称为虚拟键盘。 从用户的角度来看,点击Entry,Editor或SearchBar视图会调用从底部滑入的屏幕键盘。 点击屏幕上的任何其他位置(除了另一个Entry,Editor或SearchBar视图)通常会使键盘消失,有时键盘可能会以其他方式被解除。
从程序的角度来看,键盘的存在与输入焦点密切相关,输入焦点源于桌面图形用户界面环境。在桌面环境和移动设备上,来自键盘的输入一次只能被引导到一个用户界面对象,并且该对象必须能够被用户清楚地选择和识别。接收键盘输入的对象称为具有键盘输入焦点的对象,或者更简单地说,只是输入焦点或焦点。
VisualElement类定义了与输入焦点相关的几个方法,属性和事件:

  • Focus方法尝试将输入焦点设置为可视元素,如果成功则返回true。
  • Unfocus方法从可视元素中删除输入焦点。
  • 如果可视元素当前具有输入焦点,则IsFocused get-only属性为true。
  • 当可视元素获取输入焦点时,将触发Focused事件。
  • 当可视元素失去输入焦点时,将触发Unfocused事件。

如您所知,移动环境对键盘的使用远远少于桌面环境,并且大多数移动视图(例如您已经看过的Slider,Stepper和Switch)根本不使用键盘。虽然VisualElement类的这五个与焦点相关的成员似乎实现了一个用于在视觉元素之间传递输入焦点的通用系统,但它们实际上只与Entry,Editor和SearchBar有关。
这些视图表示它们具有输入焦点,闪烁的插入符显示文本输入点,并且它们触发键盘向上滑动。当视图失去输入焦点时,键盘会向下滑动。
视图必须将其IsEnabled属性设置为true(默认状态)才能获取输入焦点,当然IsVisible属性也必须为true或视图根本不在屏幕上。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
第二十二章:动画(五)
等待动画解决后续点击问题的另一种方法是在调用RotateTo之前初始化Rotation属性: void OnButtonClicked(object sender, EventArgs args) { button.Rotation = 0; button.RotateTo(360, 2000); } 现在,您可以在停止后再次点击按钮,它将从头开始动画。
1039 0
第二十二章:动画(八)
旋转和锚AnchorX和AnchorY属性为“缩放”和“旋转”属性设置缩放或旋转的中心,因此它们也会影响ScaleTo和RotateTo动画。CircleButton程序将一个Button旋转一个圆圈,但不像你之前看到的那样。
845 0
第二十二章:动画(三)
设置动画持续时间这是AnimationTryout中Clicked处理程序的一点变化。 它不能解决Button的多次点击问题,但它确实将动画扩展到两秒钟,因此您可以更长时间地欣赏动画。 持续时间以毫秒为单位指定为RotateTo的第二个参数。
990 0
第二十一章:变换(八)
旋转变换 “旋转”属性旋转屏幕表面上的可视元素。 将“旋转”属性设置为以度为单位的角度(不是弧度)。 正角度顺时针旋转元素。 您可以将“旋转”设置为小于0或大于360的角度。实际旋转角度是旋转属性模数360的值。
733 0
第二十一章:变换(五)
规模变换 VisualElement类定义名为Scale的属性,您可以使用该属性更改元素的呈现大小。 Scale属性不会影响布局(将在ButtonScaler程序中演示)。它不会影响元素的get-only Width和Height属性,也不会影响包含Width和Height值的get-only Bounds属性。
808 0
+关注
wangccsy
前一个帐号wangccsy@126.com不知道怎么的就成了企业帐号,改不成个人。所以重新注册了一个个人帐号。老程序员。精通JAVA,C#,数据库,对软件开发过程和流程熟悉。考取系统分析师,项目管理师和系统架构设计师等软件资格考试认证。愿意和大家一起前进。
983
文章
391
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载