Mode de couleur hérité de VisualElement sur iOS
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 :
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.