Mode de couleur hérité de VisualElement sur iOS

Télécharger l’exemple Télécharger l’exemple

Certaines vues disposent d’un Xamarin.Forms mode de couleur hérité. Dans ce mode, lorsque la IsEnabled propriété de la vue est définie sur false, la vue remplace les couleurs définies par l’utilisateur avec 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 fonctionnalité spécifique à la 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 l’affichage est désactivé. 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>

Vous pouvez également la consommer à 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 spécifique s’exécutera uniquement 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é

Notes

Lorsque vous définissez un VisualStateGroup sur une vue, le mode de couleur hérité est complètement ignoré. Pour plus d’informations sur les états visuels, consultez Visual Xamarin.Forms State Manager.