古詩詞大全網 - 成語查詢 - [Xamarin]在Entry中讀取鍵盤按鍵事件

[Xamarin]在Entry中讀取鍵盤按鍵事件

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鍵取最小值。