Starší barevný režim VisualElement ve Windows

Download Sample Stažení ukázky

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 Univerzální platforma Windows specifická pro platformu zakáže tento starší barevný režim, aby barvy nastavené v zobrazení uživatelem zůstaly 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: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>

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

using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.WindowsSpecific;
...

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

Metoda VisualElement.On<Windows> určuje, že tato konkrétní platforma bude běžet pouze ve Windows. Metoda VisualElement.SetIsLegacyColorModeEnabled v Xamarin.Forms.PlatformConfiguration.WindowsSpecific 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é:

Legacy color mode disabled

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.