近期由於工做關係開始使用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的發佈也包含了重要的社區貢獻。 這篇文章包含了每一個功能的簡要介紹以及一系列有用的資源,能夠幫助您快速完成工做。瀏覽器
Visual State Manager在其餘XAML平臺上是衆所周知的,咱們很高興將其引入到 Xamarin.Forms 3.0中。 您如今能夠在XAML或C#中使用聲明爲佈局和控件定義各類狀態,並輕鬆更新您的UI。 這是一個處理縱向和橫向切換的相機視圖:ide
要根據方向更改更改捕獲按鈕,關閉按鈕和最後一個圖像按鈕的位置,請使用Visual State Manager。 首先,在您的頁面資源中定義您的狀態:佈局
這裏有兩個組; 一個用於須要更新的每一個控件,爲簡單起見,它們共享相同的狀態名稱。 要更改頁面的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是一個新佈局,由Web開發中的Flexbox啓發而來。 就像瀏覽器能夠是任何大小同樣,Xamarin.Forms應用程序能夠運行的各類屏幕尺寸已經增長了不少。 FlexLayout能夠促進實現扁平化,高性能和靈活的用戶界面。 FlexLayout很是適合處理佈局中的內容分配和間距。 它還使您可以控制佈局的方向,對齊方式以及其餘屬性之間的對齊方式。
如今就開始使用FlexLayout,探索這些全新的資源:
FlexLayout Documentation
Xamarin University Lightning Lecture – Xamarin.Forms 3.0 FlexLayout
層疊樣式表(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
當支持從右向左流動的阿拉伯語和希伯來語等語言時,您如今能夠在任何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
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
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。
在開發時,您須要限制Entry的文本長度,在達到限制時不容許用戶繼續寫入。 爲了解決這個問題,你可能使用了一個Behavior。
如今,您能夠在Entry中使用MaxLength屬性。 只需添加該屬性並設置最大數量便可。
結果是:
使用進度條時,咱們沒法更改進度欄顏色,所以咱們只能使用默認顏色,所以爲了設置進度條的顏色,要使用原生APIs,使用自定義渲染器或效果。
如今咱們可使用ProgressColor屬性:
結果是:
如今你能夠給Picker設置一個字體(不再須要使用自定義渲染器了)。
結果是:
默認狀況下,iOS列表在左側有一個邊距,若是設計須要咱們刪除這個邊距,可能更簡單的方法是隱藏行分隔符並使用BoxView添加一個新行。
使用最新版本,並得益於平臺特性,如今真的很容易。
只需添加iOS引用:
xmlns:ios=「clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core「
而後將該屬性添加到您的列表中ios:ListView.SeparatorStyle =「FullWidth」
結果是:
此功能用於在Entry控件具備焦點時自定義Android鍵盤上的返回鍵。
默認的是這樣的:
若是咱們想改變它,能夠經過使用屬性ImeOption的平臺特性,來作相似以前iOS上的操做。
只需添加Android引用:
xmlns:android=「clr-namespace:Xamarin.Forms.PlatformConfiguration.AndroidSpecific;assembly=Xamarin.Forms.Core「
而後將屬性添加到您的Entry控件,android:Entry.ImeOptions =「Search」
結果是:
如下是如何在後面的代碼中執行以及可使用的其餘ImeFlags:
此功能將擴展到支持v3.1.0中的iOS和UWP,這裏有更多信息。
我剛剛提到了我最喜歡的幾個功能,但還有更多有用的特性。 如需更多信息,請點擊此處查看發佈說明。