Xamarin.Forms Değiştirebilirsiniz

Örnek indir Örneği indirin

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:

İOS ve Android 'de

SwitchDenetim aşağıdaki özellikleri tanımlar:

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 :

İOS ve Android 'de renklerle değiştirilen ve kapalı durumdaki anahtarların ekran görüntüsü.

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 :

VisualState üzerinde anahtar görüntüsü,iOS ve Android 'de VisualState üzerinde geçiş ekrangörüntüsü, iOS ve Android 'de 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 .