Freigeben über


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:

InputView erkennt Lesereihenfolge von plattformspezifischem Inhalt.

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.