Ordem de leitura do InputView no Windows
Essa plataforma específica da Plataforma Universal do Windows permite que a ordem de leitura (da esquerda para a direita ou da direita para a esquerda) de texto bidirecional em Entry
, Editor
e Label
as instâncias sejam detectadas dinamicamente. Ele é consumido em XAML definindo a propriedade (for Entry
e Editor
instâncias) ou Label.DetectReadingOrderFromContent
anexada InputView.DetectReadingOrderFromContent
como um 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, ele pode ser consumido do C# usando a API fluente:
using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.WindowsSpecific;
...
editor.On<Windows>().SetDetectReadingOrderFromContent(true);
O Editor.On<Windows>
método especifica que esse específico da plataforma só será executado na Plataforma Universal do Windows. O método InputView.SetDetectReadingOrderFromContent
, no namespace Xamarin.Forms.PlatformConfiguration.WindowsSpecific
, é usado para controlar se a ordem de leitura é detectada do conteúdo no InputView
. Além disso, o método InputView.SetDetectReadingOrderFromContent
pode ser usado para alternar se a ordem de leitura é detectada do conteúdo chamando o método InputView.GetDetectReadingOrderFromContent
para retornar o valor atual:
editor.On<Windows>().SetDetectReadingOrderFromContent(!editor.On<Windows>().GetDetectReadingOrderFromContent());
O resultado é que Entry
as instâncias de , Editor
, e Label
podem ter a ordem de leitura de seu conteúdo detectada dinamicamente:
Observação
Ao contrário de definir a propriedade FlowDirection
, a lógica para exibições que detectam a ordem de leitura de seu conteúdo de texto não afetará o alinhamento do texto dentro da exibição. Em vez disto, ajusta a ordem na qual os blocos de texto bidirecional são dispostos.