Udostępnij za pośrednictwem


Tryb kolorów starszej wersji elementu VisualElement w systemie Windows

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.

To platforma uniwersalna systemu Windows specyficzne dla platformy wyłącza ten starszy tryb kolorów, dzięki czemu kolory ustawione w widoku przez użytkownika pozostają 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:windows="clr-namespace:Xamarin.Forms.PlatformConfiguration.WindowsSpecific;assembly=Xamarin.Forms.Core">
    <StackLayout>
        ...
        <Editor Text="Enter text here"
                TextColor="Blue"
                BackgroundColor="Bisque"
                windows: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.WindowsSpecific;
...

_legacyColorModeDisabledEditor.On<Windows>().SetIsLegacyColorModeEnabled(false);

Metoda VisualElement.On<Windows> określa, że ta platforma będzie działać tylko w systemie Windows. Metoda VisualElement.SetIsLegacyColorModeEnabled w Xamarin.Forms.PlatformConfiguration.WindowsSpecific 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.