InputView-Lesereihenfolge unter Windows
Diese .NET Multi-Platform App UI (.NET MAUI), die für die Windows-Plattform spezifisch ist, ermöglicht es, die Lesereihenfolge (von links nach rechts oder von rechts nach links) von bidirektionalem Text in Entry-, Editor- und Label-Objekten dynamisch zu erkennen. Sie wird in XAML verwendet, indem die angehängte Eigenschaft InputView.DetectReadingOrderFromContent
(für Entry- und Editor-Objekte) oder Label.DetectReadingOrderFromContent
auf einen boolean
Wert gesetzt wird:
<ContentPage ...
xmlns:windows="clr-namespace:Microsoft.Maui.Controls.PlatformConfiguration.WindowsSpecific;assembly=Microsoft.Maui.Controls">
<StackLayout>
<Editor ... windows:InputView.DetectReadingOrderFromContent="true" />
...
</StackLayout>
</ContentPage>
Alternativ kann es auch von C# aus über die Fluent-API genutzt werden:
using Microsoft.Maui.Controls.PlatformConfiguration.WindowsSpecific;
...
editor.On<Microsoft.Maui.Controls.PlatformConfiguration.Windows>().SetDetectReadingOrderFromContent(true);
Die Methode Editor.On<Microsoft.Maui.Controls.PlatformConfiguration.Windows>
legt fest, dass dies plattformspezifisch ist und nur unter Windows ausgeführt wird. Mithilfe der Methode InputView.SetDetectReadingOrderFromContent
im Namespace Microsoft.Maui.Controls.PlatformConfiguration.WindowsSpecific
wird gesteuert, ob die Lesereihenfolge anhand des Inhalts in InputView erkannt wird. Darüber hinaus kann mit der Methode InputView.SetDetectReadingOrderFromContent
umgeschaltet werden, ob die Lesereihenfolge anhand des Inhalts erkannt wird, indem die Methode InputView.GetDetectReadingOrderFromContent
aufgerufen wird, um den aktuellen Wert zurückzugeben:
editor.On<Microsoft.Maui.Controls.PlatformConfiguration.Windows>().SetDetectReadingOrderFromContent(!editor.On<Microsoft.Maui.Controls.PlatformConfiguration.Windows>().GetDetectReadingOrderFromContent());
Das Ergebnis ist, dass für Entry-, Editor- und Label-Objekte die Lesereihenfolge ihres Inhalts dynamisch erkannt werden kann:
Hinweis
Im Gegensatz zur Einstellung der Eigenschaft FlowDirection
wirkt sich die Logik für Ansichten, die die Lesereihenfolge anhand ihres Textinhalts erkennen, nicht auf die Ausrichtung des Textes innerhalb der Ansicht aus. Stattdessen wird die Reihenfolge angepasst, in der die Blöcke mit bidirektionalem Text angeordnet sind.