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é:
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.