Modo de cor legado do VisualElement no iOS
Algumas das Xamarin.Forms exibições apresentam um modo de cor herdado. Nesse modo, quando a IsEnabled
propriedade da exibição for definida como false
, a exibição substituirá as cores definidas pelo usuário pelas cores nativas padrão para o estado desativado. Para compatibilidade com versões anteriores, esse modo de cor herdado continua sendo o comportamento padrão para exibições com suporte.
Esse específico da plataforma iOS desabilita esse modo de cor herdado em um VisualElement
, para que as cores definidas em uma exibição pelo usuário permaneçam mesmo quando a exibição estiver desabilitada. Ele é consumido em XAML definindo a propriedade anexada VisualElement.IsLegacyColorModeEnabled
como 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>
Como alternativa, ele pode ser consumido do C# usando a API fluente:
using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.iOSSpecific;
...
_legacyColorModeDisabledButton.On<iOS>().SetIsLegacyColorModeEnabled(false);
O método VisualElement.On<iOS>
especifica que essa plataforma específica só será executada no iOS. O VisualElement.SetIsLegacyColorModeEnabled
método, no Xamarin.Forms.PlatformConfiguration.iOSSpecific
namespace, é usado para controlar se o modo de cor herdado está desabilitado. Além disso, o VisualElement.GetIsLegacyColorModeEnabled
método pode ser usado para retornar se o modo de cor herdado está desabilitado.
O resultado é que o modo de cor herdado pode ser desativado, de modo que as cores definidas em uma exibição pelo usuário permaneçam mesmo quando a exibição estiver desabilitada:
Observação
Ao definir um VisualStateGroup
em uma exibição, o modo de cor herdado é completamente ignorado. Para obter mais informações sobre estados visuais, consulte O Xamarin.Forms Gerenciador de Estado Visual.