Partager via


Mode couleur hérité de VisualElement sur iOS

Certaines vues Xamarin.Forms présentent un mode de couleur hérité. Dans ce mode, lorsque la IsEnabled propriété de la vue est définie falsesur , la vue remplace les couleurs définies par l’utilisateur par les couleurs natives par défaut pour l’état désactivé. Pour la compatibilité descendante, ce mode de couleur hérité reste le comportement par défaut pour les vues prises en charge.

Cette plateforme iOS désactive ce mode de couleur hérité sur un VisualElement, de sorte que les couleurs définies sur une vue par l’utilisateur restent même lorsque la vue est désactivée. Elle est consommée en XAML en définissant la VisualElement.IsLegacyColorModeEnabled propriété jointe sur 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>

Elle peut également être consommée à partir de C# à l’aide de l’API Fluent :

using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.iOSSpecific;
...

_legacyColorModeDisabledButton.On<iOS>().SetIsLegacyColorModeEnabled(false);

La VisualElement.On<iOS> méthode spécifie que cette plateforme ne s’exécutera que sur iOS. La VisualElement.SetIsLegacyColorModeEnabled méthode, dans l’espace Xamarin.Forms.PlatformConfiguration.iOSSpecific de noms, est utilisée pour contrôler si le mode de couleur hérité est désactivé. En outre, la VisualElement.GetIsLegacyColorModeEnabled méthode peut être utilisée pour retourner si le mode de couleur hérité est désactivé.

Le résultat est que le mode de couleur hérité peut être désactivé, de sorte que les couleurs définies sur une vue par l’utilisateur restent même lorsque la vue est désactivée :

Mode de couleur hérité désactivé

Remarque

Lors de la définition d’une VisualStateGroup vue, le mode de couleur hérité est complètement ignoré. Pour plus d’informations sur les états visuels, consultez Le Xamarin.Forms Gestionnaire d’état visuel.