VisualElement Legacy-Farbmodus unter Windows
Einige der Xamarin.Forms Ansichten weisen einen älteren Farbmodus auf. Wenn die IsEnabled
Eigenschaft der Ansicht in diesem Modus auf festgelegt false
ist, ü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 bleibt dieser Legacyfarbmodus das Standardverhalten für unterstützte Ansichten.
Mit diesem Universelle Windows-Plattform plattformspezifischen Modus wird dieser Legacyfarbmodus deaktiviert, sodass farben, die für eine Ansicht durch den Benutzer festgelegt werden, auch dann beibehalten werden, wenn die Ansicht deaktiviert ist. Sie wird in XAML genutzt, indem die angefügte VisualElement.IsLegacyColorModeEnabled
-Eigenschaft auf false
festgelegt wird:
<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>
Alternativ kann es auch von C# aus über die Fluent-API genutzt werden:
using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.WindowsSpecific;
...
_legacyColorModeDisabledEditor.On<Windows>().SetIsLegacyColorModeEnabled(false);
Die Methode VisualElement.On<Windows>
legt fest, dass dies plattformspezifisch ist und nur unter Windows ausgeführt wird. Die VisualElement.SetIsLegacyColorModeEnabled
Methode im Xamarin.Forms.PlatformConfiguration.WindowsSpecific
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, die für eine Ansicht durch den Benutzer festgelegt werden, auch wenn die Ansicht deaktiviert ist:
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.