VisualElement LegacyFarbmodus unter iOS

Einige der Xamarin.Forms Ansichten weisen einen älteren Farbmodus auf. Wenn die IsEnabled Eigenschaft der Ansicht in diesem Modus auf festgelegt falseist, überschreibt die Ansicht die vom Benutzer festgelegten Farben mit den standardmäßigen nativen Farben für den deaktivierten Zustand. Aus Gründen der Abwärtskompatibilität stellt dieser Legacyfarbmodus das Standardverhalten für unterstützte Ansichten wieder Standard.

Diese plattformspezifische iOS-Plattform deaktiviert diesen älteren Farbmodus auf einem VisualElement, sodass Farben, die für eine Ansicht durch den Benutzer festgelegt werden, erneut Standard, auch wenn die Ansicht deaktiviert ist. Sie wird in XAML genutzt, indem die angefügte VisualElement.IsLegacyColorModeEnabled-Eigenschaft auf false festgelegt wird:

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

Alternativ kann sie mit der Fluent-API von C# genutzt werden:

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

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

Die Methode VisualElement.On<iOS> gibt an, dass diese plattformspezifische Funktion nur unter iOS ausführbar ist. Die VisualElement.SetIsLegacyColorModeEnabled Methode im Xamarin.Forms.PlatformConfiguration.iOSSpecific Namespace wird verwendet, um zu steuern, ob der Legacyfarbmodus deaktiviert ist. Darüber hinaus kann die VisualElement.GetIsLegacyColorModeEnabled Methode verwendet werden, um zurückzugeben, ob der Legacyfarbmodus deaktiviert ist.

Das Ergebnis ist, dass der Legacyfarbmodus deaktiviert werden kann, sodass farben für eine Ansicht durch den Benutzer neu festgelegt werden Standard auch wenn die Ansicht deaktiviert ist:

Legacyfarbmodus deaktiviert

Hinweis

Beim Festlegen einer VisualStateGroup Ansicht wird der Legacyfarbmodus vollständig ignoriert. Weitere Informationen zu visuellen Zuständen finden Sie im Xamarin.Forms Visual State-Manager.