您可能已經不得不在應用程序中使用Xamarin Forms默認不支持的特定控件。大多數使用Xamarin開發的人已經通過的一個非常常見的例子是需要使用CheckBox或Radio Button。
由於兩個平台均不支持該控件,因此Xamarin Forms不支持此控件。
Xamarin Forms的新版本已對此進行了更改,主要是使用新語法OnPlataform,請單擊此處查看更多信息。
即使使用新版本的Xamarin Forms,我們在Xamarin Forms中仍然沒有單選按鈕和CheckBox控件。
在本文中,我們將看到一個插件,其中除了單選按鈕和復選框外,還包含一些控件示例,這些控件在開發中非常有用。
Xamarin.Forms.InputKit插件
有許多插件,其中包含准備就緒可以使用的多個數據輸入組件。在這篇文章中,我們將更多地了解普通的Xamarin.Forms.InputKit以及它如何通過沒有在兩個平台上都可以使用的Radio Button和CheckBox控件來幫助我們解決問題。
該插件是開源的,其代碼可在該項目的GitHub上找到,單擊此處以進行訪問。
插件文檔非常完整,其中包含有關如何使用控件以及運行中的控件圖像的幾個示例。鑒於該插件的文檔非常完整,在本文中我將不再贅述,讓我們僅看一下Radio Button和CheckBox控件。
安裝插件
要安裝插件,請右鍵單擊解決方案,然后選擇“為解決方案管理Nuget軟件包”(如果您的版本是葡萄牙語,請選擇“管理解決方案NuGet軟件包”旁邊的內容)
我們將在.Net Standart項目和所有平台上安裝該軟件包。
在Android項目中,我們還需要安裝Plugin.CurrentActivity插件。安裝插件后,讓我們通過添加以下行在OnCreate方法的MainActivity.cs類中啟動它:
CrossCurrentActivity.Current.Init(this, savedInstanceState);
在那里,該插件已經安裝並可以使用了!
在項目中,我們已經有了MainPage.xaml頁面,我們將在該頁面上添加示例控件。
為了使MainPage.xaml頁面能夠使用插件,我們需要在頁面的xaml中添加對該插件的引用:
xmlns:input="clr-namespace:Plugin.InputKit.Shared.Controls;assembly=Plugin.InputKit"
復選框
該插件提供CheckBox控件和一些自定義選項。
例如,我們可以選擇哪個圖標代表該對象的選擇,例如星形,常規的對角線,甚至是一個完全塗漆的正方形(如盒子)
將以下源代碼添加到MainPage.xaml,以將一些CheckBox添加到屏幕:
<StackLayout Padding="30,0" Spacing="12"> <input:CheckBox Text="Valor 1" Type="Box" /> <input:CheckBox Text="Valor 2" Type="Check" /> <input:CheckBox Text="Valor 3" Type="Cross" /> <input:CheckBox Text="Valor 4" Type="Star" /> </StackLayout>
請注意,我們將Type屬性從控件更改為控件,以更改選擇圖標。
除了此屬性,您還可以自定義框的大小,框的顏色和其他內容。
如果您正在使用MVVM,並且想在視圖模型中保留是否選擇了組件,請使用IsChecked屬性
單選按鈕
單選按鈕的功能類似於CheckBox,兩者之間的主要區別在於RadioButton僅允許選擇一個。
為此,單選按鈕使用控件來包裝所有單選按鈕,這是單選按鈕組視圖。
要將單選按鈕添加到MainPage.xaml,讓我們添加以下代碼:
<StackLayout Padding="30,0" Spacing="12"> <input:RadioButtonGroupView> <input:RadioButton Text="Opção 1" /> <input:RadioButton Text="Opção 2" /> <input:RadioButton Text="Opção 3" /> <input:RadioButton Text="Opção 4" /> </input:RadioButtonGroupView> </StackLayout>
請注意,單選按鈕位於RadioButtonGroupView內,這將僅允許一個控件處於選定狀態。
如果使用MVVM,則可以在“視圖模型” 中將“ 文本”屬性設置為一個值。
為了找出被選中的人,您將具有一些選項,例如將視圖模型的屬性添加到每個控件的IsChecked屬性,或在RadioButtonGroupView中將SelectedItem屬性添加到視圖模型的屬性。
在此控件中,我們還可以自定義元素的顏色,文本的顏色和其他屬性。
結論
盡管Xamarin Forms和Microsoft Xamarin團隊已經發布了新版本,但某些組件仍然需要外部插件才能以更簡單的方式實現。當然,本文中提到的兩個控件都可以在您的應用程序中使用“自定義渲染器”來完成,但是這種方法除了花費更多的時間外,還可能會遇到一些錯誤。由於此處提到的插件是開源的,因此我們可以在項目的GitHub上關注問題,錯誤,版本以及有關它的所有信息。
--
#Ubuntu
參考資料

