Orden de lectura de InputView en Windows

Descargar ejemploDescargar el ejemplo

Esta Plataforma universal de Windows específica de la plataforma permite detectar dinámicamente el orden de lectura (de izquierda a derecha o de derecha a izquierda) del texto bidireccional en Entry, Editory Label las instancias de . Se consume en XAML estableciendo la InputView.DetectReadingOrderFromContent propiedad adjunta (para Entry las instancias y Editor ) en Label.DetectReadingOrderFromContent un boolean valor:

<ContentPage ...
             xmlns:windows="clr-namespace:Xamarin.Forms.PlatformConfiguration.WindowsSpecific;assembly=Xamarin.Forms.Core">
    <StackLayout>
        <Editor ... windows:InputView.DetectReadingOrderFromContent="true" />
        ...
    </StackLayout>
</ContentPage>

Como alternativa, se puede consumir desde C# mediante la API fluida:

using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.WindowsSpecific;
...

editor.On<Windows>().SetDetectReadingOrderFromContent(true);

El Editor.On<Windows> método especifica que esta plataforma específica solo se ejecutará en el Plataforma universal de Windows. El InputView.SetDetectReadingOrderFromContent método , en el Xamarin.Forms.PlatformConfiguration.WindowsSpecific espacio de nombres , se usa para controlar si el orden de lectura se detecta desde el contenido de InputView. Además, el InputView.SetDetectReadingOrderFromContent método se puede usar para alternar si el orden de lectura se detecta desde el contenido llamando al InputView.GetDetectReadingOrderFromContent método para devolver el valor actual:

editor.On<Windows>().SetDetectReadingOrderFromContent(!editor.On<Windows>().GetDetectReadingOrderFromContent());

El resultado es que Entrylas instancias de , Editory Label pueden tener el orden de lectura de su contenido detectado dinámicamente:

detectando el orden de lectura desde inputView específico de la plataforma de contenido,

Nota

A diferencia de establecer la FlowDirection propiedad , la lógica de las vistas que detectan el orden de lectura de su contenido de texto no afectará a la alineación del texto dentro de la vista. En su lugar, ajusta el orden en el que se diseñan bloques de texto bidireccional.