Устаревший цветовой режим VisualElement в iOS
Некоторые Xamarin.Forms представления имеют устаревший цветовой режим. В этом режиме, если IsEnabled
для свойства представления задано false
значение, представление переопределит цвета, заданные пользователем, с собственными цветами по умолчанию для отключенного состояния. Для обратной совместимости этот устаревший цветовой режим остается поведением по умолчанию для поддерживаемых представлений.
Эта платформа iOS отключает этот устаревший цветовой режим в режиме VisualElement
, чтобы цвета, заданные пользователем, оставались даже при отключении представления. Он используется в XAML, задав присоединенное VisualElement.IsLegacyColorModeEnabled
свойство следующим 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>
Кроме того, его можно использовать из C# с помощью api fluent:
using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.iOSSpecific;
...
_legacyColorModeDisabledButton.On<iOS>().SetIsLegacyColorModeEnabled(false);
Метод VisualElement.On<iOS>
указывает, что эта платформа будет работать только в iOS. Метод VisualElement.SetIsLegacyColorModeEnabled
в Xamarin.Forms.PlatformConfiguration.iOSSpecific
пространстве имен используется для управления отключением устаревшего цветового режима. Кроме того, этот метод можно использовать для возврата того, VisualElement.GetIsLegacyColorModeEnabled
отключен ли устаревший цветовой режим.
Результатом является то, что устаревший цветовой режим можно отключить, чтобы цвета, заданные пользователем, оставались даже при отключении представления:
Примечание.
При настройке VisualStateGroup
представления устаревший цветовой режим полностью игнорируется. Дополнительные сведения о визуальных состояниях см. в разделе "Диспетчер визуальных состоянийXamarin.Forms".