Orden de lectura de InputView en Windows
Esta característica específica de la Plataforma universal de Windows específica permite detectar dinámicamente el orden de lectura (de izquierda a derecha o de derecha a izquierda) de texto bidireccional en instancias de Entry
, Editor
y Label
. Se consume en XAML estableciendo la propiedad adjunta InputView.DetectReadingOrderFromContent
(para las instancias Entry
y Editor
) o Label.DetectReadingOrderFromContent
en un valor boolean
:
<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 método Editor.On<Windows>
especifica que esta característica especifica de la plataforma solo se ejecutará en la Plataforma universal de Windows. El método InputView.SetDetectReadingOrderFromContent
, en el espacio de nombres Xamarin.Forms.PlatformConfiguration.WindowsSpecific
, se usa para controlar si se detecta el orden de lectura a partir del contenido en InputView
. Además, se puede usar el método InputView.SetDetectReadingOrderFromContent
para alternar si se detecta el orden de lectura a partir del contenido, llamando al método InputView.GetDetectReadingOrderFromContent
para que devuelva el valor actual:
editor.On<Windows>().SetDetectReadingOrderFromContent(!editor.On<Windows>().GetDetectReadingOrderFromContent());
El resultado es que el orden de lectura de las instancias de Entry
, Editor
y Label
se puede detectar dinámicamente:
Nota:
A diferencia de la configuración de la propiedad FlowDirection
, la lógica de las vistas que detectan el orden de lectura a partir 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.