Бөлісу құралы:


Устаревший цветовой режим VisualElement в Windows

Некоторые Xamarin.Forms представления имеют устаревший цветовой режим. В этом режиме, если IsEnabled для свойства представления задано falseзначение, представление переопределит цвета, заданные пользователем, с собственными цветами по умолчанию для отключенного состояния. Для обратной совместимости этот устаревший цветовой режим остается поведением по умолчанию для поддерживаемых представлений.

Этот универсальная платформа Windows для конкретной платформы отключает этот устаревший цветовой режим, чтобы цвета, заданные пользователем, оставались даже при отключении представления. Он используется в XAML, задав присоединенное VisualElement.IsLegacyColorModeEnabled свойство следующим 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>

Кроме того, его можно использовать из C# с помощью api fluent:

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

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

Метод VisualElement.On<Windows> указывает, что эта платформа будет работать только в Windows. Метод VisualElement.SetIsLegacyColorModeEnabled в Xamarin.Forms.PlatformConfiguration.WindowsSpecific пространстве имен используется для управления отключением устаревшего цветового режима. Кроме того, этот метод можно использовать для возврата того, VisualElement.GetIsLegacyColorModeEnabled отключен ли устаревший цветовой режим.

Результатом является то, что устаревший цветовой режим можно отключить, чтобы цвета, заданные пользователем, оставались даже при отключении представления:

Устаревший режим цвета отключен

Примечание.

При настройке VisualStateGroup представления устаревший цветовой режим полностью игнорируется. Дополнительные сведения о визуальных состояниях см. в разделе "Диспетчер визуальных состоянийXamarin.Forms".