Tryb kolorów starszej wersji elementu VisualElement w systemie iOS
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.
Ten specyficzny dla platformy systemu iOS wyłącza ten starszy tryb kolorów w systemie VisualElement
, 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:ios="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core">
<StackLayout>
...
<Button Text="Button"
TextColor="Blue"
BackgroundColor="Bisque"
ios: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.iOSSpecific;
...
_legacyColorModeDisabledButton.On<iOS>().SetIsLegacyColorModeEnabled(false);
Metoda VisualElement.On<iOS>
określa, że ta platforma będzie działać tylko w systemie iOS. Metoda VisualElement.SetIsLegacyColorModeEnabled
w Xamarin.Forms.PlatformConfiguration.iOSSpecific
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:
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.