Xamarin.Forms 第16局:觸發(fā)器

總目錄


前言

本文介紹觸發(fā)器:
一节预、屬性觸發(fā)器
二惭适、數(shù)據(jù)觸發(fā)器
三科阎、事件觸發(fā)器
四、多觸發(fā)器
五算灸、EnterActions和ExitActions

環(huán)境

1.Visual Studio 2017
2.Xamarin.Froms 4.0.0.8055-pre1
3.Android 4.4(API 19)或更高版本
4.約定:XF代表Xamarin.Forms

內(nèi)容

觸發(fā)器:控件上屬性更改或事件觸發(fā)時(shí)所引發(fā)的操作扼劈。有以下四種觸發(fā)器:

  • 屬性觸發(fā)器:控件屬性變?yōu)樘囟ㄖ禃r(shí)觸發(fā);
  • 數(shù)據(jù)觸發(fā)器:被監(jiān)視控件屬性變?yōu)樘囟ㄖ禃r(shí)觸發(fā)菲驴;
  • 事件觸發(fā)器:控件觸發(fā)特定事件(即觸發(fā)器指定的事件)時(shí)觸發(fā)荐吵;
  • 多觸發(fā)器:另一種實(shí)現(xiàn)觸發(fā)器的方式。

一赊瞬、屬性觸發(fā)器

屬性觸發(fā)器:控件屬性變?yōu)樘囟ㄖ禃r(shí)觸發(fā)先煎。

實(shí)現(xiàn)效果

效果描述:當(dāng)Entry獲取焦點(diǎn)時(shí),背景色變?yōu)闇\灰色巧涧。

實(shí)現(xiàn)方式

1.Trigger為屬性觸發(fā)器薯蝎。

2.所有觸發(fā)器主要部分如下:

  • TargetType:觸發(fā)器適用的控件類型;
  • EnterActions和ExitActions:使用C#代碼設(shè)置觸發(fā)器操作褒侧;

2.Trigger主要部分如下:

  • Property:要監(jiān)視的控件屬性良风。例如:本例監(jiān)視屬性為IsFocused;
  • Value:特定值闷供,即當(dāng)監(jiān)視的屬性變更為此值時(shí)觸發(fā)操作。例如:本例特定值設(shè)置為True统诺,即當(dāng)IsFocused值為True時(shí)觸發(fā)歪脏,也就是Entry獲取焦點(diǎn)時(shí)觸發(fā);
  • Setter:設(shè)置粮呢,即觸發(fā)器觸發(fā)時(shí)婿失,使用這些設(shè)置的值;

二啄寡、數(shù)據(jù)觸發(fā)器

數(shù)據(jù)觸發(fā)器:被監(jiān)視控件屬性變?yōu)樘囟ㄖ禃r(shí)觸發(fā)豪硅。

實(shí)現(xiàn)效果

效果描述:未輸入用戶名時(shí),按鈕不可用挺物;輸入用戶名后懒浮,按鈕可用。

實(shí)現(xiàn)方式

1.DataTrigger為數(shù)據(jù)觸發(fā)器。

2.DataTrigger通過Binding的方式設(shè)置監(jiān)視控件砚著。

注意:使用Text.Length時(shí)次伶,需要將Entry的Text屬性值設(shè)為""(即:Text=""),否則Text值為null稽穆,導(dǎo)致觸發(fā)器失效冠王。

三、事件觸發(fā)器

事件觸發(fā)器:控件觸發(fā)特定事件(即觸發(fā)器指定的事件)時(shí)觸發(fā)舌镶。

實(shí)現(xiàn)效果

效果描述:點(diǎn)擊登錄按鈕柱彻,按鈕文本變?yōu)榈卿浿?..

實(shí)現(xiàn)方式

定義事件觸發(fā)器觸發(fā)操作類,使用此類響應(yīng)事件觸發(fā)器觸發(fā)時(shí)的操作:

  • 第一步:繼承TriggerAction<T>抽象類餐胀,T為觸發(fā)事件的控件哟楷,這里為Button;
  • 第二步:重寫Invoke方法骂澄,當(dāng)事件觸發(fā)器觸發(fā)時(shí)調(diào)用此方法吓蘑。

1.EventTrigger為事件觸發(fā)器;

2.EventTrigger沒有Setter坟冲。

3.EventTrigger使用Event設(shè)置監(jiān)聽事件磨镶,引用自定義的觸發(fā)器操作類(本例為ButtonEventTriggerAction類)響應(yīng)事件;

4.EventTrigger不支持五中所述的EnterActions和ExitActions健提。

5.可能多個(gè)Button具有相同的操作琳猫,使用觸發(fā)器,可以避免重復(fù)代碼私痹。

四脐嫂、多觸發(fā)器

多觸發(fā)器:多個(gè)觸發(fā)條件滿足時(shí)觸發(fā)。

實(shí)現(xiàn)效果

效果描述:當(dāng)用戶名和手機(jī)號(hào)都未輸入時(shí)紊遵,按鈕不可用账千,輸入任意一個(gè)時(shí)按鈕可用。

實(shí)現(xiàn)方式

1.MultiTrigger為多觸發(fā)器暗膜;

2.MultiTrigger在其Conditions中設(shè)置條件集合匀奏,只有當(dāng)所有條件都滿足時(shí),才會(huì)觸發(fā)Setter学搜;

3.本例展示了輸入用戶名或手機(jī)號(hào)按鈕便可用的效果娃善。

下節(jié)通過值轉(zhuǎn)換器實(shí)現(xiàn)用戶名和密碼必須都輸入時(shí)按鈕才可用的效果。

五瑞佩、EnterActions和ExitActions

EnterActions和ExitActions:另一種實(shí)現(xiàn)觸發(fā)器的方式聚磺。

實(shí)現(xiàn)效果
實(shí)現(xiàn)方式

首先定義觸發(fā)器操作。

EnterActions和ExitActions:另一種實(shí)現(xiàn)觸發(fā)器的方式炬丸。EnterActions在開始時(shí)觸發(fā)瘫寝,ExitActions在結(jié)束時(shí)觸發(fā),可以理解為先觸發(fā)EnterActions然后再觸發(fā)ExitActions,例如:本例中會(huì)先將Button的Text變?yōu)?登陸中..."在變成"登錄成功"矢沿。一般這兩個(gè)只定義一個(gè)即可滥搭。

后語

下篇介紹值轉(zhuǎn)換器,待續(xù)...


總目錄

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末捣鲸,一起剝皮案震驚了整個(gè)濱河市瑟匆,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌栽惶,老刑警劉巖愁溜,帶你破解...
    沈念sama閱讀 210,978評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異外厂,居然都是意外死亡冕象,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門汁蝶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來渐扮,“玉大人,你說我怎么就攤上這事掖棉∧孤桑” “怎么了?”我有些...
    開封第一講書人閱讀 156,623評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵幔亥,是天一觀的道長(zhǎng)耻讽。 經(jīng)常有香客問我,道長(zhǎng)帕棉,這世上最難降的妖魔是什么针肥? 我笑而不...
    開封第一講書人閱讀 56,324評(píng)論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮香伴,結(jié)果婚禮上慰枕,老公的妹妹穿的比我還像新娘。我一直安慰自己即纲,他們只是感情好捺僻,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著崇裁,像睡著了一般。 火紅的嫁衣襯著肌膚如雪束昵。 梳的紋絲不亂的頭發(fā)上拔稳,一...
    開封第一講書人閱讀 49,741評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音锹雏,去河邊找鬼巴比。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的轻绞。 我是一名探鬼主播采记,決...
    沈念sama閱讀 38,892評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼政勃!你這毒婦竟也來了唧龄?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,655評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤奸远,失蹤者是張志新(化名)和其女友劉穎既棺,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體懒叛,經(jīng)...
    沈念sama閱讀 44,104評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡丸冕,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了薛窥。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片胖烛。...
    茶點(diǎn)故事閱讀 38,569評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖诅迷,靈堂內(nèi)的尸體忽然破棺而出佩番,到底是詐尸還是另有隱情,我是刑警寧澤竟贯,帶...
    沈念sama閱讀 34,254評(píng)論 4 328
  • 正文 年R本政府宣布答捕,位于F島的核電站,受9級(jí)特大地震影響屑那,放射性物質(zhì)發(fā)生泄漏拱镐。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評(píng)論 3 312
  • 文/蒙蒙 一持际、第九天 我趴在偏房一處隱蔽的房頂上張望沃琅。 院中可真熱鬧,春花似錦蜘欲、人聲如沸益眉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)郭脂。三九已至,卻和暖如春澈歉,著一層夾襖步出監(jiān)牢的瞬間展鸡,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評(píng)論 1 264
  • 我被黑心中介騙來泰國(guó)打工埃难, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留莹弊,地道東北人涤久。 一個(gè)月前我還...
    沈念sama閱讀 46,260評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像忍弛,于是被迫代替她去往敵國(guó)和親响迂。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • ??JavaScript 與 HTML 之間的交互是通過事件實(shí)現(xiàn)的。 ??事件惠昔,就是文檔或?yàn)g覽器窗口中發(fā)生的一些特...
    霜天曉閱讀 3,474評(píng)論 1 11
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,090評(píng)論 1 32
  • 本節(jié)介紹各種常見的瀏覽器事件幕与。 鼠標(biāo)事件 鼠標(biāo)事件指與鼠標(biāo)相關(guān)的事件,主要有以下一些镇防。 click 事件啦鸣,dblc...
    許先生__閱讀 2,424評(píng)論 0 4
  • 1、窗體 1来氧、常用屬性 (1)Name屬性:用來獲取或設(shè)置窗體的名稱诫给,在應(yīng)用程序中可通過Name屬性來引用窗體。 ...
    Moment__格調(diào)閱讀 4,522評(píng)論 0 11
  • 《裕語言》速成開發(fā)手冊(cè)3.0 官方用戶交流:iApp開發(fā)交流(1) 239547050iApp開發(fā)交流(2) 10...
    葉染柒丶閱讀 26,237評(píng)論 5 19