Xamarin.Forms Views介紹(二)

Button使用

功能很簡(jiǎn)單,用來響應(yīng)用戶的點(diǎn)擊操作。

Button特殊屬性介紹

Text、FontAttributes等屬性不再說明。

  • Image :FileImageSource類型,按鈕上顯示的圖片,涉及圖片資源先不介紹。
  • BorderWidth :double類型,表示按鈕邊框?qū)挾龋J(rèn)值0。
  • BorderColor :邊框顏色,默認(rèn)值Color.Default。
  • BorderRadius :double類型,按鈕圓角弧度,默認(rèn)值5。

只設(shè)置BorderWidth屬性,僅IOS有邊框效果。同時(shí)設(shè)置BorderWidth和BorderColor,使 Windows 10 mobile顯示邊框效果。而Android要同時(shí)設(shè)置BorderWidth、BorderColor和BackgroundColor才會(huì)有邊框效果。
BorderRadius僅對(duì)Android和IOS有效

Button事件

  • Clicked :用戶點(diǎn)擊按鈕,手指抬起時(shí)觸發(fā),手指按下移動(dòng)手指到按鈕外不會(huì)觸發(fā)。

示例:

<Button Text="Forms Button"
     HorizontalOptions="Center"
     VerticalOptions="Center"
     BorderWidth="5"
     BorderColor="Aqua"
     BackgroundColor="Red"/>

效果,Android預(yù)覽效果變形,運(yùn)行時(shí)正常(為了演示屬性,效果是難看了):


ActivityIndicator使用

給用戶簡(jiǎn)單的反饋表明程序正在運(yùn)行,不提供具體進(jìn)度信息。
不同平臺(tái)效果

ActivityIndicator內(nèi)部實(shí)現(xiàn)只定義了兩個(gè)屬性。

  • Color :表示指示器顏色。
  • IsRunning :bool類型,指示活動(dòng)是否正在運(yùn)行,設(shè)置為false時(shí)ActivityIndicator自動(dòng)隱藏。

無特殊事件。

XAML定義:

<ActivityIndicator
    HorizontalOptions="Center"
    VerticalOptions="Center"
    Color="Red" 
    IsRunning="true"/>

ProgressBar使用

顯示進(jìn)度信息。定義了Progress屬性表示當(dāng)前進(jìn)度。Progress也是ProgressBar定義的唯一屬性,沒有提供MaxXX和MinXX相關(guān)屬性,所以Progress有效值是0~1范圍內(nèi)的double類型數(shù)值。
不同平臺(tái)效果展示:

XAML定義

<ProgressBar 
    VerticalOptions="Center"
    Progress=".5" />

ProgressBar定義了一個(gè)ProgressTo方法設(shè)置當(dāng)前進(jìn)度值,與直接賦值Progress不同ProgressTo提供了動(dòng)畫效果(Animate方法實(shí)現(xiàn))。第一個(gè)參數(shù)value表示設(shè)置的進(jìn)度值,第二個(gè)參數(shù)length表示多少時(shí)間內(nèi)達(dá)到設(shè)置的值(毫秒),第三個(gè)參數(shù)easing表示動(dòng)畫效果。

ProgressTo定義

使用示例和效果:

await progressBar.ProgressTo(0.8, 3000, Easing.BounceOut);
BounceOut效果

Slider使用

Slider是一個(gè)水平拖動(dòng)的滑塊。

Slider提供屬性

  • Maximum :double類型,表示Slider支持最大值,默認(rèn)值1。
  • Minimum :double類型,表示Slider支持最小值,默認(rèn)值0。
  • Value :double類型,表示Slider當(dāng)前值。

定義Slider注意事項(xiàng)。Minimum值必須小于Maximum值,Value值必須大于等于Minimum小于等于Maximum。

<Slider Minimum="10"/>定義Slider引發(fā)異常:

XAML解析器解析Slider節(jié)點(diǎn),初始化Slider定義Minimum為10,Maximum值仍是默認(rèn)值1,Minimum大于Maximum引發(fā)異常,因此定義Slider時(shí)應(yīng)先為Maximum賦值再為Minimum賦值,Minimum和Maximum有正確的賦值之后再為Value賦值。

注意Value賦值位置

當(dāng)我們先定義Value值為30時(shí),滑塊仍處于最小值位置不會(huì)出現(xiàn)我們期望的效果,這是因?yàn)閄AML解析器解析Slider節(jié)點(diǎn)會(huì)根據(jù)屬性賦值順序從前到后初始化Slider對(duì)象,先賦值Value等于30,此時(shí)Minimum值為0,Maximum值為1,Value等于30不是一個(gè)合法的值.

Slider提供事件

  • ValueChanged :Value值發(fā)生改變時(shí)觸發(fā)。

Stepper使用

Stepper 與Slider類似,區(qū)別是Stepper兩個(gè)按鈕組成,兩個(gè)按鈕加減一個(gè)增量值改變Value的值。

Stepper不同平臺(tái)效果

Stepper提供屬性

  • Increment :double類型,表示Stepper增量值,默認(rèn)值1。
  • Maximum :double類型,表示Stepper支持最大值,默認(rèn)值100。
  • Minimum :double類型,表示Stepper支持最小值,默認(rèn)值0。
  • Value :double類型,表示Stepper當(dāng)前值。

Stepper提供事件

  • ValueChanged :Value值發(fā)生改變時(shí)觸發(fā)。

Switch使用

Switch表示開關(guān)按鈕,獲取用戶bool類型輸入。Switch只定義了一個(gè)IsToggled屬性,IsToggled屬性的改變會(huì)觸發(fā)Toggled事件。

當(dāng)我們?yōu)镾witch的x:Name屬性時(shí)賦值時(shí)可能會(huì)賦值為switch與C#關(guān)鍵字重復(fù),可以替換為@switch。

Switch不同平臺(tái)效果
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容