Aracılığıyla paylaş


Xamarin.Forms Şalter

Denetim Xamarin.FormsSwitch , bir değerle temsil edilen açık ve kapalı durumlar arasında geçiş yapmak için kullanıcı tarafından değiştirilebilen yatay bir boolean geçiş düğmesidir. Switch sınıfı öğesinden Viewdevralır.

Aşağıdaki ekran görüntüleri, iOS ve Android'de açık ve kapalı durumlarındaki bir Switch denetimi gösterir:

iOS ve Android'de açma ve kapatma durumlarındaki anahtarların ekran görüntüsü

Denetim Switch aşağıdaki özellikleri tanımlar:

  • IsToggled, öğesinin açık olup olmadığını Switch gösteren bir boolean değerdir.
  • OnColor, öğesinin iki durumlu veya açık durumda nasıl Switch işlendiğini etkileyen bir Color durumdur.
  • ThumbColorColor anahtar başparmaktır.

Bu özellikler bir BindableProperty nesne tarafından desteklenir; bu da stillendirilebileceği ve veri bağlamalarının hedefi olabileceği anlamına gelir Switch .

DenetimSwitch, özellik değiştiğindeIsToggled, kullanıcı işlemesi aracılığıyla veya bir uygulama özelliği ayarlarken tetiklenen IsToggled bir olayı tanımlarToggled. Olaya ToggledEventArgs eşlik eden nesnenin Toggled türünde booladlı Valuetek bir özelliği vardır. Olay tetiklendiğinde, özelliğinin Value değeri özelliğin yeni değerini IsToggled yansıtır.

Anahtar Oluşturma

Switch XAML'de örneği oluşturulabilir. özelliği IsToggled , iki durumlu Switcholarak ayarlanabilir. Varsayılan olarak özelliğidir IsToggled false. Aşağıdaki örnek, isteğe bağlı IsToggled özellik kümesiyle XAML'de bir Switch örneği oluşturmayı gösterir:

<Switch IsToggled="true"/>

Switch Kodda da oluşturulabilir:

Switch switchControl = new Switch { IsToggled = true };

Görünümü değiştir

sınıfından devralan Switch View özelliklere ek olarak ve ThumbColor Switch özelliklerini de tanımlarOnColor. OnColor özelliği açık durumuna geçtiğinde rengi tanımlamak Switch için ayarlanabilir ve ThumbColor özellik anahtar başparmak tanımlamak Color için ayarlanabilir. Aşağıdaki örnek, XAML'de bu özelliklerin ayarlandığı bir Switch örneği nasıl oluşturacaklarını gösterir:

<Switch OnColor="Orange"
        ThumbColor="Green" />

Kodda oluştururken Switch özellikler de ayarlanabilir:

Switch switch = new Switch { OnColor = Color.Orange, ThumbColor = Color.Green };

Aşağıdaki ekran görüntüsünde Switch , ve ThumbColor özellikleri ayarlanmış olarak açık ve kapalı iki durumlu OnColor durumları gösterilmektedir:

iOS ve Android'de renklerin değiştirildiği açık ve kapalı durumları açma ve kapatma durumlarının ekran görüntüsü.

Anahtar durumu değişikliğine yanıt verme

Özellik değiştiğinde IsToggled , kullanıcı düzenlemesi aracılığıyla veya bir uygulama özelliği ayarlarken IsToggled olay Toggled tetikler. Bu olay için bir olay işleyicisi, değişikliğe yanıt vermek için kaydedilebilir:

<Switch Toggled="OnToggled" />

Arka planda kod dosyası olayın işleyicisini Toggled içerir:

void OnToggled(object sender, ToggledEventArgs e)
{
    // Perform an action after examining e.Value
}

Olay sender işleyicisindeki bağımsız değişken, bu olayı tetiklemenin Switch sorumlusudur. nesnesine sender erişmek veya aynı Toggled olay işleyicisini Switch paylaşan birden çok Switch nesne arasında ayrım yapmak için özelliğini kullanabilirsiniz.

Olay işleyicisi Toggled kodda da atanabilir:

Switch switchControl = new Switch {...};
switchControl.Toggled += (sender, e) =>
{
    // Perform an action after examining e.Value
}

Veri bağlama anahtarı

Olay işleyicisi Toggled , değişen geçiş durumlarına yanıt vermek Switch için veri bağlama ve tetikleyiciler kullanılarak ortadan kaldırılabilir.

<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, adlı öğesinin Label özelliğini Switch izlemek IsToggled için içinde bir DataTrigger bağlama ifadesi kullanır.styleSwitch Bu özellik haline geldiğinde trueve FontAttributes FontSize özellikleri Label değiştirilir. IsToggled özelliği öğesine falseFontAttributes döndüğünde ve FontSize özellikleri Label ilk durumlarına sıfırlanır.

Tetikleyiciler hakkında bilgi için bkz Xamarin.Forms . Tetikleyiciler.

Görsel durumlarını değiştirme

Switchözelliği değiştiğinde IsToggled görsel bir değişiklik başlatmak için kullanılabilecek has On ve Off görsel durumları.

Aşağıdaki XAML örneğinde ve Off durumları için görsel durumların On nasıl tanımlanacağı gösterilmektedir:

<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, On VisualState özelliği olduğunda IsToggled özelliğinin trueThumbColor orta yay yeşili olarak ayarlandığını belirtir. özelliği Off VisualState olduğunda özelliğinin ThumbColor IsToggled falsekırmızı olarak ayarlandığını belirtir. Bu nedenle, genel etki, kapalı bir konumdayken Switch başparmağının kırmızı olması ve başparmak açık konumda olduğunda orta yay yeşili Switch olmasıdır:

iOS ve Android'de VisualState'te geçiş yapma ekran görüntüsüiOS ve Android'de VisualState'i kapatma ekran görüntüsü

Görsel durumlar hakkında daha fazla bilgi için bkz Xamarin.Forms . Visual State Manager.

Anahtarı Devre Dışı Bırakma

Bir uygulama, geçiş yapılan işlemin geçerli bir işlem olmadığı bir durum Switch girebilir. Böyle durumlarda, Switch özelliği falseolarak ayarlanarak IsEnabled devre dışı bırakılabilir. Bu, kullanıcıların 'ı işleyebilmesini Switchengeller.