Xamarin.Forms 3.0的新特性

近期由於工做關係開始使用Xamarin,翻譯了兩篇國外的介紹3.0新特性的文章,供你們參考。php

 

試試Xamarin.Forms 3.0的最新版本!css

咱們很高興爲您帶來咱們最新的Xamarin.Forms 3.0版穩定版本。 這是咱們迄今爲止發佈速度最快,功能最豐富的版本,還包括對Xamarin技術棧的極大改進,例如Visual Studio 2017中最新的XAML IntelliSense體驗。android

當您升級到3.0時,您會發現新的佈局和樣式功能,這將改善您構建UI的方式,包括Visual State Manager,Flex佈局,樣式表和從右至左的支持等等。 除了這些細節的優化外,XAML編譯還特別關注構建時間的優化,在某些基準測試中將縮短多達88%。ios

Xamarin.Forms 3.0

Xamarin.Forms 3.0的發佈也包含了重要的社區貢獻。 這篇文章包含了每一個功能的簡要介紹以及一系列有用的資源,能夠幫助您快速完成工做。瀏覽器

Visual State Manager

Visual State Manager在其餘XAML平臺上是衆所周知的,咱們很高興將其引入到 Xamarin.Forms 3.0中。 您如今能夠在XAML或C#中使用聲明爲佈局和控件定義各類狀態,並輕鬆更新您的UI。 這是一個處理縱向和橫向切換的相機視圖:ide

要根據方向更改更改捕獲按鈕,關閉按鈕和最後一個圖像按鈕的位置,請使用Visual State Manager。 首先,在您的頁面資源中定義您的狀態:佈局

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

這裏有兩個組; 一個用於須要更新的每一個控件,爲簡單起見,它們共享相同的狀態名稱。 要更改頁面的C#文件中的狀態,請使用如下命令進行調用:性能

VisualStateManager.GoToState(Container, (width > height) ? "Horizontal" : "Portrait");
VisualStateManager.GoToState(LastImage, (width > height) ? "Horizontal" : "Portrait");

爲了肯定方向和目標狀態,可能須要進行一些計算。測試

有關如何充分利用Xamarin.Forms中的Visual State Manager的更多信息,請參考如下內容:字體

  • Visual State Manager文檔

  • Xamarin大學講座 - Xamarin.Forms 3.0視覺狀態管理器

FlexLayout

FlexLayout是一個新佈局,由Web開發中的Flexbox啓發而來。 就像瀏覽器能夠是任何大小同樣,Xamarin.Forms應用程序能夠運行的各類屏幕尺寸已經增長了不少。 FlexLayout能夠促進實現扁平化,高性能和靈活的用戶界面。 FlexLayout很是適合處理佈局中的內容分配和間距。 它還使您可以控制佈局的方向,對齊方式以及其餘屬性之間的對齊方式。


如今就開始使用FlexLayout,探索這些全新的資源:

  • FlexLayout Documentation

  • Xamarin University Lightning Lecture – Xamarin.Forms 3.0 FlexLayout

StyleSheets

層疊樣式表(CSS)是FlexLayout的一個天然搭配,具備共同的傳統。 使用CSS設計佈局風格是與XAML一塊兒實現樣式的最佳方式。 咱們知道不少人都喜歡使用Web技術的CSS,而且咱們也認可XAML開發人員喜歡在XAML中實現本身的樣式。 咱們很是高興可以爲您提供這兩種高效的選項! 使用讓你工做效率最高的東西。

樣式表能夠做爲單獨的CSS文件添加到您的項目中,也能夠內嵌到您的資源中。 可使用各類經常使用選擇器組合您的樣式。

有關使用CSS對FlexLayouts和其餘應用程序進行樣式設置的更多信息:

  • Browse our User Interface Documentation

  • Sign up for the Xamarin University Lightning Lecture – Xamarin.Forms 3.0 CSS

Right-To-Left Localization

當支持從右向左流動的阿拉伯語和希伯來語等語言時,您如今能夠在任何VisualElement中輕鬆使用FlowDirection屬性,而無需像之前使用過的那樣使用特定於平臺的選項或效果。 由於您已經經過訪問Device.FlowDirection知道了設備的方向,因此更新您的UI能夠很簡單,只需將它添加到XAML頁面的頭部便可:

FlowDirection="{x:Static Device.FlowDirection}"

有關更新應用程序以支持從右至左佈局的更多信息,請參考如下內容:

  • Right-To-Left Localization in Xamarin.Forms Blog

  • Localization Documentation

  • Xamarin University Lightning Lecture – Xamarin.Forms 3.0 Right-to-Left

Community Contributions

Xamarin.Forms 3.0還以咱們的專業社區提供的一些重要貢獻而自豪,其中包括「F100」合做來補充一些內容,而且會繼續在Xamarin.Forms中獲得支持。 這個代號表明了改善Xamarin.Forms中100個小缺陷的挑戰。 請繼續向 GitHub project board作出貢獻!

也許最出色的貢獻是還處在預覽版的Xamarin.Forms與WPF合做的功能。 這使您能夠經過Native Forms將Xamarin.Forms UI帶入現有的WPF應用程序,併爲舊版Windows構建您的Xamarin.Forms應用程序。 有關此新技術 的其餘信息:

  • WPF Documentation

  • Xamarin University Lightning Lecture – Xamarin.Forms 3.0 WPF

  • WPF Progress Status 

Update Today and Start Exploring!

Xamarin.Forms 3.0現已在NuGet上提供。 請務必閱讀包含大量錯誤修復的完整版本說明。

請fork Conference Camera prototype 應用程序,它演示了全部這些驚人的功能,幷包括一些很棒的特性,來自Azure認知服務的自定義視覺集成!

喜歡這篇文章? 在Xamarin論壇上討論它!

 

 

探索Xamarin Forms 3.0中的新特性

隨着Xamarin Forms 3.0的發佈,每一個人都在談論這些新功能:Flex Layout,css,Visual State Manager和Right to Left。 在這篇文章中,咱們不會討論它們,由於有不少文章已經討論過了。(如上面這個)。

咱們要討論的是一些新的特性,在這個版本發佈以前,若是要實現這些特性的話,須要使用自定義渲染器或Behavior。

1-Max Length

在開發時,您須要限制Entry的文本長度,在達到限制時不容許用戶繼續寫入。 爲了解決這個問題,你可能使用了一個Behavior。

如今,您能夠在Entry中使用MaxLength屬性。 只需添加該屬性並設置最大數量便可。

結果是:

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

2-Progress bar Color

使用進度條時,咱們沒法更改進度欄顏色,所以咱們只能使用默認顏色,所以爲了設置進度條的顏色,要使用原生APIs,使用自定義渲染器或效果。

如今咱們可使用ProgressColor屬性:

結果是:

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

3-Picker Font Family

如今你能夠給Picker設置一個字體(不再須要使用自定義渲染器了)。

結果是:

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

4-ListView full width separators (iOS)

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

默認狀況下,iOS列表在左側有一個邊距,若是設計須要咱們刪除這個邊距,可能更簡單的方法是隱藏行分隔符並使用BoxView添加一個新行。

使用最新版本,並得益於平臺特性,如今真的很容易。

只需添加iOS引用:

xmlns:ios=「clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core「

而後將該屬性添加到您的列表中ios:ListView.SeparatorStyle =「FullWidth」

結果是:

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

 

5-Ime Options (Android)

此功能用於在Entry控件具備焦點時自定義Android鍵盤上的返回鍵。

默認的是這樣的:

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

若是咱們想改變它,能夠經過使用屬性ImeOption的平臺特性,來作相似以前iOS上的操做。

只需添加Android引用:

xmlns:android=「clr-namespace:Xamarin.Forms.PlatformConfiguration.AndroidSpecific;assembly=Xamarin.Forms.Core「

而後將屬性添加到您的Entry控件,android:Entry.ImeOptions =「Search」

結果是:

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

如下是如何在後面的代碼中執行以及可使用的其餘ImeFlags:

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

 

此功能將擴展到支持v3.1.0中的iOS和UWP,這裏有更多信息。

我剛剛提到了我最喜歡的幾個功能,但還有更多有用的特性。 如需更多信息,請點擊此處查看發佈說明。

 

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

相關文章
相關標籤/搜索