Partager via


Mode de couleur hérité de VisualElement sur Windows

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 Windows universelle spécifique à la plateforme désactive ce mode de couleur hérité, 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:windows="clr-namespace:Xamarin.Forms.PlatformConfiguration.WindowsSpecific;assembly=Xamarin.Forms.Core">
    <StackLayout>
        ...
        <Editor Text="Enter text here"
                TextColor="Blue"
                BackgroundColor="Bisque"
                windows: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.WindowsSpecific;
...

_legacyColorModeDisabledEditor.On<Windows>().SetIsLegacyColorModeEnabled(false);

La VisualElement.On<Windows> méthode spécifie que cette plateforme spécifique ne s’exécutera que sur Windows. La VisualElement.SetIsLegacyColorModeEnabled méthode, dans l’espace Xamarin.Forms.PlatformConfiguration.WindowsSpecific 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.