Condividi tramite


Modalità colore legacy di VisualElement in iOS

Alcune visualizzazioni Xamarin.Forms presentano una modalità colore legacy. In questa modalità, quando la IsEnabled proprietà della visualizzazione è impostata su false, la visualizzazione sostituirà i colori impostati dall'utente con i colori nativi predefiniti per lo stato disabilitato. Per la compatibilità con le versioni precedenti, questa modalità colore legacy rimane il comportamento predefinito per le visualizzazioni supportate.

Questa piattaforma iOS specifica della piattaforma disabilita questa modalità di colore legacy in un VisualElementoggetto , in modo che i colori impostati su una visualizzazione dall'utente rimangano anche quando la visualizzazione è disabilitata. Viene utilizzata in XAML impostando la VisualElement.IsLegacyColorModeEnabled proprietà associata su 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>

In alternativa, può essere usato da C# usando l'API Fluent:

using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.iOSSpecific;
...

_legacyColorModeDisabledButton.On<iOS>().SetIsLegacyColorModeEnabled(false);

Il VisualElement.On<iOS> metodo specifica che questa piattaforma verrà eseguita solo in iOS. Il VisualElement.SetIsLegacyColorModeEnabled metodo, nello Xamarin.Forms.PlatformConfiguration.iOSSpecific spazio dei nomi , viene usato per controllare se la modalità colore legacy è disabilitata. Inoltre, il VisualElement.GetIsLegacyColorModeEnabled metodo può essere usato per restituire se la modalità colore legacy è disabilitata.

Il risultato è che la modalità colore legacy può essere disabilitata, in modo che i colori impostati su una visualizzazione dall'utente rimangano anche quando la visualizzazione è disabilitata:

Modalità colore legacy disabilitata

Nota

Quando si imposta un oggetto VisualStateGroup in una visualizzazione, la modalità colore legacy viene completamente ignorata. Per altre informazioni sugli stati di visualizzazione, vedere Xamarin.Forms Visual State Manager.