Modo de cor legado do VisualElement no Android
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 modo de cor herdado é específico da plataforma Android para que as cores definidas em uma visualização pelo usuário permaneçam mesmo quando a visualização estiver desativada. Ele é consumido em XAML definindo a propriedade anexada VisualElement.IsLegacyColorModeEnabled
como 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>
Como alternativa, ele pode ser consumido do C# usando a API fluente:
using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.AndroidSpecific;
...
_legacyColorModeDisabledButton.On<Android>().SetIsLegacyColorModeEnabled(false);
O VisualElement.On<Android>
método especifica que esse específico da plataforma só será executado no Android. O VisualElement.SetIsLegacyColorModeEnabled
método, no Xamarin.Forms.PlatformConfiguration.AndroidSpecific
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.