[Xamarin]在Entry中读取键盘按键事件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Xamarin]在Entry中读取键盘按键事件相关的知识,希望对你有一定的参考价值。
参考技术A Xamarin可以构建用C#编写的跨平台应用,目前支持的平台包括Windows、Linux、android和ios平台。 开发Mac和Ios程序需要对应的设备 。Android、IOS和UWP平台由微软提供支持,GTK#(Linux,Win7)支持由社区提供。详细参阅 Xamarin.Forms 平台支持 。
注意:观看此文需要你对Xamarin开发有一定基础。
Xamarin的目标是实现跨平台应用开发,最主要的是iOS和Android平台开发,所以对触摸或指针事件是比较完善的,但有的时候我们需要在Windows等桌面平台开发,需要能获取键盘按键事件。因此我写这篇文章介绍如何在Xamarin.Forms控件上获取键盘事件。
获取键盘事件需要在有键盘的平台上实现,因此我们要为不同的平台编写专用的控件。理解这篇文章的内容需要提前理解 自定义呈现器 。
我们在.net standard项目里新建一个自定义控件MySlider继承Slider:
以及枚举类Key:
然后我们到UWP项目中,创建CustomRenderer:
重写OnElementChanged函数,此函数在把Xamarin控件对应到本机控件时候调用,要注意释放旧的和初始化新的步骤。
Control 是本机控件的引用, Element 是Xamarin控件的引用。
在本机控件的键盘事件上加上我们的事件Control_KeyDown,在这个事件里调用我们自定义Xamarin控件的函数,以实现调用UI事件。
然后我们返回.Net standard项目,在Xaml里写:
很简单只是为了学习测试。
cs文件内容是
我们通过函数OnKey,实现按下F键让Slider取最大值,按下E键让Slider取最小值。
测试一下结果,按F键Slider取最大值,按E键取最小值。
以上是关于[Xamarin]在Entry中读取键盘按键事件的主要内容,如果未能解决你的问题,请参考以下文章
Atitit.android js 的键盘按键检测Back键Home键和Menu键事件