Xamarin.Forms Değiştirebilirsiniz
Xamarin.FormsSwitch Denetim, Kullanıcı tarafından, bir değerle temsil edilen ve kapalı durumları arasında geçiş yapmak için işlenebilen yatay bir iki durumlu düğmedir boolean . SwitchSınıfı öğesinden devralır View .
Aşağıdaki ekran görüntüleri, Switch iOS ve Android 'de bir denetimi Switch ve kapalı durumuna gösterir:
'de
SwitchDenetim aşağıdaki özellikleri tanımlar:
- Xamarin_Forms _Switch_IsToggled "Data-LinkType =" Absolute-path ">
IsToggledboolean,SwitchIsToggledolup olmadığını belirten bir değerdir. - Xamarin_Forms _Switch_OnColor "Data-LinkType =" Absolute-path ">,
OnColorbirColorSwitchveyaOnColornasıl işleneceğini etkileyen bir durumdur. ThumbColor,ColorSwitch 'in parmak izi.
Bu özellikler bir nesne tarafından desteklenir BindableProperty , yani Switch Stillenebilir ve veri bağlamalarının hedefi olabilir.
SwitchDenetim, ToggledIsToggled Kullanıcı düzenlemesi veya bir uygulama özelliği ayarladığında, özellik değiştiğinde harekete geçirilen bir olayı tanımlar IsToggled . ToggledEventArgsOlaya eşlik eden nesnenin Toggled türünde, adlı tek bir özelliği vardır Valuebool . Olay harekete geçirildiğinde, Value özelliğinin değeri özelliğin yeni değerini yansıtır IsToggled .
Anahtar oluştur
Bir Switch , XAML 'de oluşturulabilir. IsToggledÖzelliği, değiştirmek için ayarlanabilir Switch . Varsayılan olarak, IsToggled özelliği olur false . Aşağıdaki örnek, Switch xaml 'de isteğe bağlı özellik kümesiyle nasıl örneklendirilecek gösterilmektedir IsToggled :
<Switch IsToggled="true"/>
SwitchKod içinde de oluşturulabilir:
Switch switchControl = new Switch { IsToggled = true };
Görünümü Değiştir
Sınıfından devralan özelliklere ek olarak SwitchView , SwitchOnColor ve özellikleri de tanımlar ThumbColor . OnColorÖzelliği, Switch durumuna OnColor duruma getirildiğinde rengi tanımlamak üzere ayarlanabilir ve ThumbColor özellik, anahtar kaydırma kutusunun tanımlanması için ayarlanabilir Color . Aşağıdaki örnek, Switch Bu özellikler KÜMESIYLE XAML içinde nasıl örneklendirilecek göstermektedir:
<Switch OnColor="Orange"
ThumbColor="Green" />
Ayrıca, bir kod içinde oluşturma sırasında özellikler de ayarlanabilir Switch :
Switch switch = new Switch { OnColor = Color.Orange, ThumbColor = Color.Green };
Aşağıdaki ekran görüntüsünde, SwitchSwitch ve özelliklerinin ayarlandığı ve kapalı geçiş durumları gösterilmektedir ThumbColor :

Anahtar durum değişikliğine yanıt verme
IsToggledÖzellik değiştiğinde, Kullanıcı düzenlemesi veya bir uygulama IsToggled özelliği ayarladığında, Toggled olay ateşlenir. Bu olay için bir olay işleyicisi, değişikliğe yanıt vermek için kaydedilebilir:
<Switch Toggled="OnToggled" />
Arka plan kod dosyası olay işleyicisini içerir Toggled :
void OnToggled(object sender, ToggledEventArgs e)
{
// Perform an action after examining e.Value
}
senderOlay işleyicisindeki bağımsız değişken, Switch Bu olayı tetiklemekten sorumludur. senderSwitch Nesnesine erişmek veya Switch aynı olay işleyicisini paylaşan birden çok nesne arasında ayrım yapmak için özelliğini kullanabilirsiniz Toggled .
ToggledOlay işleyicisi kod içinde de atanabilir:
Switch switchControl = new Switch {...};
switchControl.Toggled += (sender, e) =>
{
// Perform an action after examining e.Value
}
Bir anahtara veri bağlama
ToggledOlay işleyicisi, değişen geçiş durumlarına yanıt vermek için veri bağlama ve Tetikleyiciler kullanılarak ortadan kaldırılabilir 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>
Bu örnekte,, LabelDataTrigger adlı öğesinin özelliğini izlemek için bir bağlama ifadesi kullanır IsToggledSwitchstyleSwitch . Bu özellik olduğunda, trueFontAttributes ve FontSize özellikleri Label değişir. IsToggledÖzelliği öğesine döndüğünde, falseFontAttributesFontSize öğesinin ve özellikleri Label başlangıçtaki durumlarına sıfırlanır.
Tetikleyiciler hakkında bilgi için bkz Xamarin.Forms Triggers ..
Görsel durumları Değiştir
Switch, OnOffSwitch "Data-LinkType =" absolute-path ">IsToggled özelliği değiştiğinde _Switch_IsToggled Xamarin_Forms görsel bir değişiklik başlatmak için kullanılabilen görsel durumlara sahiptir .
Aşağıdaki XAML örneği, ve durumları için görsel durumların nasıl tanımlanacağını göstermektedir OnOff :
<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>
Bu örnekte, OnVisualState Xamarin_Forms On _Switch_IsToggled "Data-LinkType =" absolute-path ">özelliği olduğunda, IsToggledtrueThumbColor özelliğin orta bahar yeşil olarak ayarlanacağını belirtir. OffVisualStateIsToggled Özelliği olduğunda false , ThumbColor özelliği Red olarak ayarlanacak olduğunu belirtir. Bu nedenle, genel efekt, Switch parmak izi kırmızı olduğunda ve bir yerinde olduğunda Thumb orta bahar yeşil olduğunda ortaya çıkarma olur Switch :
iOS ve Android 'de VisualState üzerinde geçiş ekran
VisualState kapalı durumu
Görsel durumlar hakkında daha fazla bilgi için bkz Xamarin.Forms Visual State Manager ..
Bir anahtarı devre dışı bırakma
Bir uygulama, değiştirilen bir durum girebilir ve Switch geçerli bir işlem değildir. Böyle durumlarda, Switch özelliği olarak ayarlanarak devre dışı bırakılabilir IsEnabledfalse . Bu, kullanıcıların ' i işlemesini engeller Switch .
Örneği indirin