Modo de Cor Herdado do VisualElement no iOS
Alguns dos modos Xamarin.Forms de exibição apresentam um modo de cor herdado. Nesse modo, quando a IsEnabled
propriedade do modo de exibição for definida false
como , o modo de exibição substituirá as cores definidas pelo usuário com as cores nativas padrão para o estado desabilitado. Para compatibilidade com versões anteriores, esse modo de cor herdado continua sendo o comportamento padrão para exibições com suporte.
Essa plataforma específica do iOS desabilita esse modo de cor herdado em um VisualElement
, para que as cores definidas em um modo de exibição pelo usuário permaneçam mesmo quando a exibição estiver desabilitada. Ele é consumido em XAML definindo a VisualElement.IsLegacyColorModeEnabled
propriedade false
anexada como :
<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 VisualElement.On<iOS>
método especifica que esse específico da plataforma só será executado 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 desabilitado, para que as cores definidas em um modo de exibição pelo usuário permaneçam mesmo quando a exibição estiver desabilitada:
Observação
Ao definir um VisualStateGroup
em um modo de 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.