Udostępnij za pośrednictwem


Tryb kolorów starszej wersji elementu VisualElement w systemie Android

Xamarin.Forms Niektóre widoki mają starszy tryb kolorów. W tym trybie, gdy IsEnabled właściwość widoku jest ustawiona na false, widok zastąpi kolory ustawione przez użytkownika przy użyciu domyślnych kolorów natywnych dla stanu wyłączonego. W przypadku zgodności z poprzednimi wersjami ten starszy tryb kolorów pozostaje zachowaniem domyślnym dla obsługiwanych widoków.

Ta platforma systemu Android wyłącza ten starszy tryb kolorów, dzięki czemu kolory ustawione w widoku przez użytkownika pozostaną nawet wtedy, gdy widok jest wyłączony. Jest on używany w języku XAML przez ustawienie dołączonej VisualElement.IsLegacyColorModeEnabled właściwości na wartość 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>

Alternatywnie można go używać z poziomu języka C# przy użyciu płynnego interfejsu API:

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

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

Metoda VisualElement.On<Android> określa, że ta platforma będzie działać tylko w systemie Android. Metoda VisualElement.SetIsLegacyColorModeEnabled w Xamarin.Forms.PlatformConfiguration.AndroidSpecific przestrzeni nazw służy do kontrolowania, czy starszy tryb kolorów jest wyłączony. Ponadto można użyć metody w celu zwrócenia, VisualElement.GetIsLegacyColorModeEnabled czy starszy tryb kolorów jest wyłączony.

W rezultacie można wyłączyć starszy tryb kolorów, dzięki czemu kolory ustawione w widoku przez użytkownika pozostaną nawet wtedy, gdy widok jest wyłączony:

Wyłączony starszy tryb kolorów

Uwaga

W przypadku ustawiania VisualStateGroup widoku tryb starszego koloru jest całkowicie ignorowany. Aby uzyskać więcej informacji na temat stanów wizualizacji, zobacz Xamarin.Forms Visual State Manager.