Xamarin.Forms Přepnout

Stáhnout ukázku Stažení ukázky

Ovládací prvek je vodorovné přepínací tlačítko, se kterým může uživatel manipulovat a přepínat mezi stavy zapnout a vypnout, které jsou Xamarin.FormsSwitch reprezentovány boolean hodnotou. Třída Switch dědí z View třídy .

Následující snímky obrazovky ukazují ovládací prvek v jeho stavech přepínače Zapnout a vypnout v iOSu a Switch Androidu: Switch

Snímek obrazovky se stavy zapnutí a vypnutí vpřepínačích pro iOS a Android v a Androidu

Ovládací Switch prvek definuje následující vlastnosti:

Tyto vlastnosti jsou zálohovány objektem , což znamená, že objekt může mít styl a být cílem BindablePropertySwitch datových vazeb.

Ovládací prvek definuje událost, která se aktivuje při změně Switch vlastnosti, a to buď prostřednictvím manipulace s uživatelem, nebo když ToggledIsToggled aplikace nastaví vlastnost IsToggled . Objekt, ToggledEventArgs který doprovází Toggled událost, má jednu vlastnost s názvem Value typu bool . Při aktivování události bude hodnota Value vlastnosti odrážet novou hodnotu IsToggled vlastnosti.

Vytvoření přepínače

Instanci Switch lze vytvořit v jazyce XAML. Jeho IsToggled vlastnost lze nastavit tak, aby přeplala Switch . Ve výchozím nastavení IsToggled je vlastnost false . Následující příklad ukazuje, jak vytvořit instanci v Switch jazyce XAML s volitelnou IsToggled nastavenou vlastností:

<Switch IsToggled="true"/>

Objekt Switch lze také vytvořit v kódu:

Switch switchControl = new Switch { IsToggled = true };

Vzhled přepínače

Kromě vlastností, které dědí z třídy , definuje také vlastnosti SwitchView a SwitchOnColorThumbColor . Vlastnost lze nastavit tak, aby definoval barvu, když je přepne na svůj stav, a vlastnost lze nastavit tak, aby definoval OnColorSwitchOnColorThumbColorColor kryptografický otisk přepínače. Následující příklad ukazuje, jak vytvořit instanci v Switch jazyce XAML s těmito nastavenými vlastnostmi:

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

Vlastnosti lze také nastavit při vytváření objektu Switch v kódu:

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

Následující snímek obrazovky ukazuje stav přepínače v jeho zapnout Switch a vypnout s Switch nastavenými ThumbColor vlastnostmi a :

Snímek obrazovky se stavy Zapnutí a vypnutí v iOSu a Androidu se změněnou barvou

Reakce na změnu stavu přepínače

Když se vlastnost změní, ať už prostřednictvím manipulace s uživatelem, nebo když aplikace nastaví vlastnost IsToggledIsToggled , událost se Toggled vyžádá. Obslužnou rutinu události pro tuto událost je možné zaregistrovat pro reakci na změnu:

<Switch Toggled="OnToggled" />

Soubor kódu na pozadí obsahuje obslužnou rutinu Toggled události:

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

Argument sender v obslužné rutině události Switch zodpovídá za aktivaci této události. Vlastnost můžete použít pro přístup k objektu nebo k rozlišení mezi více sender objekty, které sdílejí stejnou SwitchSwitchToggled obslužnou rutinu události.

Obslužnou Toggled rutinu události je také možné přiřadit v kódu:

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

Datová vazba přepínače

Obslužnou rutinu události je možné eliminovat pomocí datové vazby a triggerů, které reagují na měnící ToggledSwitch se stavy přepínacího přepínače.

<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>

V tomto příkladu používá Label vazbový výraz v k DataTrigger monitorování vlastnosti s názvem IsToggledSwitchstyleSwitch . Když se tato vlastnost true změní na , změní se vlastnosti a objektu FontAttributesFontSizeLabel . Když se vlastnost vrátí do , vlastnosti a objektu se IsToggledfalseFontAttributesFontSizeLabel resetují do počátečního stavu.

Informace o aktivačních událostech najdete v tématu Xamarin.Forms Triggers .

Přepnutí stavů vizuálu

Switchmá vizuální stavy a , které lze použít k zahájení změny vizuálu při změně OnOff Xamarin_Forms Switch _Switch_IsToggled" data-linktype="absolute-path">IsToggled vlastností.

Následující příklad XAML ukazuje, jak definovat stavy vizuálu pro On stavy Off a :

<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>

V tomto příkladu určuje, že pokud je vlastnost OnVisualState Xamarin_Forms On _Switch_IsToggled" data-linktype="absolute-path">IsToggledtrue vlastnost , ThumbColor vlastnost se nastaví na střední spring green. Určuje, OffVisualState že pokud je vlastnost , IsToggled vlastnost se nastaví na falseThumbColor červenou. Celkovým efektem tedy je, že pokud je v poloze vypnuto, je jeho palce červený a jeho kryptografický otisk je střední, spring green, když je v SwitchSwitch poloze on:

Snímek obrazovky s přepínačem VisualState v iOSua Androidu v přepínačiSnímek obrazovky s vypnutím vizuálního stavu v iOSu aAndroidu

Další informace o stavech vizuálů najdete v tématu Xamarin.Forms Visual State Manager .

Zakázání přepínače

Aplikace může vstoupit do stavu, kdy přepínací tlačítko Switch není platná operace. V takových případech je Switch možné objekt zakázat nastavením jeho vlastnosti na IsEnabledfalse . To zabrání uživatelům v manipulaci s Switch .