Xamarin.Forms CheckBox
Xamarin.FormsCheckBox
是可以核取或空白的按鈕類型。 核取複選框時,會將其視為開啟。 當複選框是空的時,它就會被視為關閉。
CheckBox
會 bool
定義名為 IsChecked
的屬性,指出是否已 CheckBox
檢查 。 這個屬性也受到 BindableProperty
物件支援,這表示它可以設定樣式,並成為數據系結的目標。
注意
IsChecked
可繫結屬性的預設系結模式為 BindingMode.TwoWay
。
CheckBox
定義CheckedChanged
透過使用者操作或應用程式設定 IsChecked
屬性時IsChecked
引發的事件。 事件 CheckedChangedEventArgs
隨附 CheckedChanged
的物件具有名為 Value
的單一屬性,類型 bool
為 。 引發事件時,屬性的值 Value
會設定為 屬性的新值 IsChecked
。
建立 CheckBox
下列範例示範如何在 XAML 中具現化 CheckBox
:
<CheckBox />
此 XAML 會導致下列螢幕快照所示的外觀:
根據預設,是空的 CheckBox
。 CheckBox
可以透過使用者操作或將 IsChecked
屬性設定為 true
來檢查 :
<CheckBox IsChecked="true" />
此 XAML 會導致下列螢幕快照所示的外觀:
或者, CheckBox
可以在程式代碼中建立 :
CheckBox checkBox = new CheckBox { IsChecked = true };
回應 CheckBox 變更狀態
IsChecked
當屬性變更時,可以透過使用者操作或應用程式設定 IsChecked
屬性時引發 CheckedChanged
事件。 您可以註冊此事件的事件處理程式以回應變更:
<CheckBox CheckedChanged="OnCheckBoxCheckedChanged" />
程式代碼後置檔案包含 事件的處理程式 CheckedChanged
:
void OnCheckBoxCheckedChanged(object sender, CheckedChangedEventArgs e)
{
// Perform required operation after examining e.Value
}
自 sender
變數負責 CheckBox
此事件。 您可以使用這個來存取CheckBox
物件,或區分共用相同CheckedChanged
事件處理程式的多個CheckBox
物件。
或者,事件事件處理程式 CheckedChanged
可以在程式代碼中註冊:
CheckBox checkBox = new CheckBox { ... };
checkBox.CheckedChanged += (sender, e) =>
{
// Perform required operation after examining e.Value
};
數據系結 CheckBox
CheckedChanged
您可以使用資料系結和觸發程式來回應CheckBox
已檢查或空白的 ,來消除事件處理程式:
<CheckBox x:Name="checkBox" />
<Label Text="Lorem ipsum dolor sit amet, elit rutrum, enim hendrerit augue vitae praesent sed non, lorem aenean quis praesent pede.">
<Label.Triggers>
<DataTrigger TargetType="Label"
Binding="{Binding Source={x:Reference checkBox}, Path=IsChecked}"
Value="true">
<Setter Property="FontAttributes"
Value="Italic, Bold" />
<Setter Property="FontSize"
Value="Large" />
</DataTrigger>
</Label.Triggers>
</Label>
在此範例中,會 Label
使用數據觸發程式中的系結表達式來監視 IsChecked
的 CheckBox
屬性。 當這個屬性變成 true
時,FontAttributes
變更的 Label
和 FontSize
屬性。 IsChecked
當 屬性傳回 時false
,的 FontAttributes
和 FontSize
屬性Label
會重設為其初始狀態。
在下列螢幕快照中,iOS 螢幕快照會在 空白時顯示Label
格式設定,而 Android 螢幕快照則會在核取 時CheckBox
CheckBox
顯示Label
格式設定:
如需觸發程式的詳細資訊,請參閱 Xamarin.Forms 觸發程式。
停用複選框
有時候應用程式會進入 CheckBox
正在檢查的狀態不是有效的作業。 在這種情況下, CheckBox
可以藉由將其 IsEnabled
屬性設定為 false
來停用 。
CheckBox 外觀
除了繼承自 類別的屬性CheckBox
之外,CheckBox
也會定義Color
屬性,其色彩設定為 Color
:View
<CheckBox Color="Red" />
下列螢幕快照顯示一系列的已檢查 CheckBox
物件,其中每個物件都有其 Color
屬性設定為不同的 Color
:
CheckBox 視覺效果狀態
CheckBox
IsChecked
VisualState
具有,可用來在檢查時起始視覺效果變更CheckBox
。
下列 XAML 範例示範如何定義狀態的 IsChecked
視覺狀態:
<CheckBox ...>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal">
<VisualState.Setters>
<Setter Property="Color"
Value="Red" />
</VisualState.Setters>
</VisualState>
<VisualState x:Name="IsChecked">
<VisualState.Setters>
<Setter Property="Color"
Value="Green" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
</CheckBox>
在此範例中,會IsChecked
VisualState
指定核取 時CheckBox
,其 Color
屬性會設定為綠色。 Normal
VisualState
指定 當 處於正常狀態時CheckBox
,其 Color
屬性會設定為紅色。 因此,整體效果是 CheckBox
,在空白時為紅色,並在檢查時為綠色。
如需視覺狀態的詳細資訊,請參閱 Xamarin.Forms Visual State Manager。