发布网友 发布时间:2023-07-04 07:48
共1个回答
热心网友 时间:2023-10-08 19:09
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键取最小值。