Sdílet prostřednictvím


Starší barevný režim VisualElement v Androidu

Některá zobrazení Xamarin.Forms mají starší režim barev. V tomto režimu, když IsEnabled je vlastnost zobrazení nastavena na false, zobrazení přepíše barvy nastavené uživatelem s výchozími nativními barvami pro zakázaný stav. Kvůli zpětné kompatibilitě zůstává tento starší barevný režim výchozím chováním podporovaných zobrazení.

Tato platforma pro Android zakáže tento starší režim barev, takže barvy nastavené v zobrazení uživatelem zůstanou i v případě, že je zobrazení zakázané. Využívá se v XAML nastavením VisualElement.IsLegacyColorModeEnabled připojené vlastnosti na false:

<ContentPage ...
             xmlns:android="clr-namespace:Xamarin.Forms.PlatformConfiguration.AndroidSpecific;assembly=Xamarin.Forms.Core">
    <StackLayout>
        ...
        <Button Text="Button"
                TextColor="Blue"
                BackgroundColor="Bisque"
                android:VisualElement.IsLegacyColorModeEnabled="False" />
        ...
    </StackLayout>
</ContentPage>

Alternativně ho můžete využívat z jazyka C# pomocí rozhraní FLUENT API:

using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.AndroidSpecific;
...

_legacyColorModeDisabledButton.On<Android>().SetIsLegacyColorModeEnabled(false);

Metoda VisualElement.On<Android> určuje, že tato konkrétní platforma se bude spouštět pouze v Androidu. Metoda VisualElement.SetIsLegacyColorModeEnabled v Xamarin.Forms.PlatformConfiguration.AndroidSpecific oboru názvů slouží k řízení, zda je starší barevný režim zakázán. Kromě toho lze metodu VisualElement.GetIsLegacyColorModeEnabled použít k vrácení, zda je starší barevný režim zakázán.

Výsledkem je, že starší režim barev je možné zakázat, takže barvy nastavené v zobrazení uživatelem zůstanou i v případě, že je zobrazení zakázané:

Zastaralý barevný režim je zakázaný.

Poznámka:

Při nastavování VisualStateGroup zobrazení je starší barevný režim zcela ignorován. Další informace o stavech vizuálů naleznete v tématu Správce stavu vizuáluXamarin.Forms.