原創(chuàng)|產(chǎn)品更新|編輯:黃竹雯|2016-02-06 11:07:49.000|閱讀 241 次
概述:UI工具包Xamarin.Forms更新至v2.1.0-pre1,新版本新增ControlTemplates、DataTemplateSelector、Effects,并且改進(jìn)了HasUnevenRows、ListView等,還修復(fù)了很多操作方面的問題。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
Xamarin Forms 是一個高效創(chuàng)建跨平臺用戶界面的庫 。通過Xamarin Forms 可以一次編碼生成基于主流移動平臺(iOS, Android, Windows Phone)的應(yīng)用界面。和HTML 5 不同, 它是一套原生的界面解決方案,這意味著通過Xamarin Forms 渲染的界面是與底層API 緊密相連, 那你可以結(jié)合諸如iOS 中的Core Motion , PassKit 還有StoreKit 這些API 使用 ,也可以使用諸如NFC / Google Play Service 的Android API ,當(dāng)然少不了Windows Phone 的Tiles 。
Xamarin Forms 通過一次編碼,生成多平臺界面。假若你做的工作涉及到三個平臺,那你會對重重復(fù)復(fù)的界面邏輯工作厭煩,Xamarin Forms 真的是一個不錯的解決方案。使用 Xamarin Forms,你可以通過C#硬編碼方式去架構(gòu)你的界面,還有你可以通過XAML方式去構(gòu)建。
具體更新內(nèi)容如下:
ControlTemplates 將在2.1.0版本中進(jìn)行介紹,包括以下類型:
TemplatedPage和TemplatedView現(xiàn)在作為ContentPage和ContentView的基礎(chǔ)類別。ControlTemplates可以用來定義Control或Page的視覺外觀,同時可以清晰地分辨視覺層次結(jié)構(gòu)和Content本身。ControlTemplates可以通過應(yīng)用Style來極大地擴(kuò)張在Xamarin.Forms的主題功能。
隨著ControlTemplates ,引進(jìn)了TemplateBindings的概念。TemplateBindings運行起來和正常的Bindings相同,不論如何他們的Source都是自動設(shè)置目標(biāo)的擁有ControlTemplate的父視圖。超出ControlTemplate 的范圍使用TemplateBinding暫不支持。
IDataTemplateSelectors允許在ListView.ItemsSource每項運行時選擇DataTemplate。
用法:
class MyDataTemplateSelector : DataTemplateSelector { public MyDataTemplateSelector () { // Retain instances! this.templateOne = new DataTemplate (typeof (ViewA)); this.templateTwo = new DataTemplate (typeof (ViewB)); } protected override DataTemplate OnSelectTemplate (object item, BindableObject container) { if (item is double) return this.templateOne; return this.templateTwo; } private readonly DataTemplate templateOne; private readonly DataTemplate templateTwo; }
DataTemplateSelectors有以下限制:
Effects提供了一個簡單的方法來自定義控件的本機(jī)外觀和感覺,而無需求助于一個完整的Custom Renderer。您可以使用這些來自定義本地控件,例如,下面的Effect就顯示了如何在iOS上創(chuàng)建一個Border effect,這個effect可以在控件上設(shè)置2像素紫色輪廓:
// located inside iOS specific codebase public class BorderEffect : PlatformEffect { protected override void OnAttached () { Control.Layer.BorderColor = UIColor.Purple.CGColor; Control.Layer.BorderWidth = 2; } protected override void OnDetached () { Control.Layer.BorderWidth = 0; } }
應(yīng)用這種effect,你只需要通過IList Effects集合附加在Element上。這是一個簡單得多的方式用本機(jī)觸動來微調(diào)你的用戶界面。
購買最新版Xamarin.Forms<>,即可擁有最新正版授權(quán)!
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:慧都控件網(wǎng)