Modo de color heredado de VisualElement en Windows

Descargar ejemploDescargar el ejemplo

Algunas de las Xamarin.Forms vistas presentan un modo de color heredado. En este modo, cuando la IsEnabled propiedad de la vista se establece falseen , la vista invalidará los colores establecidos por el usuario con los colores nativos predeterminados para el estado deshabilitado. Para la compatibilidad con versiones anteriores, este modo de color heredado sigue siendo el comportamiento predeterminado para las vistas admitidas.

Este Plataforma universal de Windows específico de la plataforma deshabilita este modo de color heredado, de modo que los colores establecidos en una vista por el usuario permanezcan incluso cuando la vista esté deshabilitada. Se consume en XAML estableciendo la VisualElement.IsLegacyColorModeEnabled propiedad falseadjunta en :

<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>

Como alternativa, se puede consumir desde C# mediante la API fluida:

using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.WindowsSpecific;
...

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

El VisualElement.On<Windows> método especifica que esta plataforma específica solo se ejecutará en Windows. El VisualElement.SetIsLegacyColorModeEnabled método , en el Xamarin.Forms.PlatformConfiguration.WindowsSpecific espacio de nombres , se usa para controlar si el modo de color heredado está deshabilitado. Además, el VisualElement.GetIsLegacyColorModeEnabled método se puede usar para devolver si el modo de color heredado está deshabilitado.

El resultado es que el modo de color heredado se puede deshabilitar, de modo que los colores establecidos en una vista por el usuario permanezcan incluso cuando la vista esté deshabilitada:

Modo de color heredado deshabilitado

Nota

Al establecer un VisualStateGroup en una vista, se omite completamente el modo de color heredado. Para obtener más información sobre los estados visuales, vea El Xamarin.Forms Administrador de estado visual.