Xamarin.Forms 開關
控件 Xamarin.FormsSwitch
是水準切換按鈕,可由使用者操作,在開啟和關閉狀態之間切換,以值表示 boolean
。 類別 Switch
繼承自 View
。
下列螢幕快照顯示 Switch
iOS 和 Android 上開啟與關閉切換狀態中的控制檔:
控制項 Switch
會定義下列屬性:
這些屬性是由 BindableProperty
物件所支援,這表示 Switch
可以設定樣式並成為數據系結的目標。
控件 Switch
會 Toggled
定義當屬性變更時,透過使用者操作或應用程式設定 屬性時 IsToggled
引發的事件 IsToggled
。 事件 ToggledEventArgs
隨附 Toggled
的物件具有名為 Value
的單一屬性,類型 bool
為 。 引發事件時, Value
屬性值會反映 屬性的新值 IsToggled
。
建立交換器
Switch
可以在 XAML 中具現化 。 屬性 IsToggled
可以設定為切換 Switch
。 根據預設, IsToggled
屬性為 false
。 下列範例示範如何使用選擇性IsToggled
屬性集在 XAML 中具現化 Switch
:
<Switch IsToggled="true"/>
Switch
也可以在程式代碼中建立 :
Switch switchControl = new Switch { IsToggled = true };
切換外觀
除了繼承自 類別的屬性Switch
之外,Switch
也會定義 OnColor
和 ThumbColor
屬性。View
OnColor
屬性可以設定為在切換至開啟狀態時定義Switch
色彩,而且ThumbColor
屬性可以設定為定義Color
切換拇指的 。 下列範例示範如何使用這些屬性集在 XAML 中具現化 Switch
:
<Switch OnColor="Orange"
ThumbColor="Green" />
您也可以在程式代碼中建立 Switch
時設定屬性:
Switch switch = new Switch { OnColor = Color.Orange, ThumbColor = Color.Green };
下列螢幕快照顯示 Switch
其 開啟 和 關閉 切換狀態中的 ,並 OnColor
已設定 和 ThumbColor
屬性:
回應切換狀態變更
IsToggled
當屬性變更時,可以透過使用者操作或應用程式設定 IsToggled
屬性時引發 Toggled
事件。 您可以註冊此事件的事件處理程式以回應變更:
<Switch Toggled="OnToggled" />
程式代碼後置檔案包含 事件的處理程式 Toggled
:
void OnToggled(object sender, ToggledEventArgs e)
{
// Perform an action after examining e.Value
}
sender
事件處理程式中的自變數負責Switch
引發此事件。 您可以使用 sender
屬性來存取Switch
物件,或區分共用相同Toggled
事件處理程式的多個Switch
物件。
Toggled
事件處理程式也可以在程式代碼中指派:
Switch switchControl = new Switch {...};
switchControl.Toggled += (sender, e) =>
{
// Perform an action after examining e.Value
}
數據係結參數
Toggled
您可以使用資料系結和觸發程式來回應Switch
變更切換狀態,來消除事件處理程式。
<Switch x:Name="styleSwitch" />
<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 styleSwitch}, Path=IsToggled}"
Value="true">
<Setter Property="FontAttributes"
Value="Italic, Bold" />
<Setter Property="FontSize"
Value="Large" />
</DataTrigger>
</Label.Triggers>
</Label>
在此範例中,會Label
使用 中的DataTrigger
系結表達式來監視IsToggled
具名 styleSwitch
的 Switch
屬性。 當這個屬性變成 true
時,會FontAttributes
變更 的 Label
和 FontSize
屬性。 IsToggled
當 屬性傳回 時false
,的 FontAttributes
和 FontSize
屬性Label
會重設為其初始狀態。
如需觸發程式的相關信息,請參閱 Xamarin.Forms 觸發程式。
切換視覺狀態
Switch
具有 On
和 Off
視覺狀態,可用來在屬性變更時 IsToggled
起始視覺變更。
下列 XAML 範例示範如何定義 和 Off
狀態的On
視覺狀態:
<Switch IsToggled="True">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="On">
<VisualState.Setters>
<Setter Property="ThumbColor"
Value="MediumSpringGreen" />
</VisualState.Setters>
</VisualState>
<VisualState x:Name="Off">
<VisualState.Setters>
<Setter Property="ThumbColor"
Value="Red" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
</Switch>
在此範例中,會On
VisualState
指定 當 屬性為 true
時IsToggled
,ThumbColor
屬性會設定為中春綠色。 Off
VisualState
指定當 屬性為 false
時IsToggled
,ThumbColor
屬性會設定為紅色。 因此,整體效果是,當 處於關閉位置時 Switch
,其拇指是紅色,而當 位於 位置時 Switch
,其拇指為中春綠色:
如需視覺狀態的詳細資訊,請參閱 Xamarin.Forms Visual State Manager。
停用參數
應用程式可能會進入切換狀態,其中 Switch
切換的 不是有效的作業。 在這種情況下, Switch
可以藉由將其 IsEnabled
屬性設定為 false
來停用 。 這可防止使用者操作 Switch
。