Compartilhar via


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 no Entry, Editore Label instâncias sejam detectadas dinamicamente. Ele é consumido em XAML definindo a propriedade (para Entry e Editor instâncias) ou Label.DetectReadingOrderFromContent anexada InputView.DetectReadingOrderFromContent para 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 InputView.SetDetectReadingOrderFromContent método, no Xamarin.Forms.PlatformConfiguration.WindowsSpecific namespace, é usado para controlar se a ordem de leitura é detectada a partir do conteúdo no InputView. Além disso, o InputView.SetDetectReadingOrderFromContent método pode ser usado para alternar se a ordem de leitura é detectada a partir do conteúdo, chamando o InputView.GetDetectReadingOrderFromContent método para retornar o valor atual:

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

O resultado é que Entryas instâncias , Editore Label podem ter a ordem de leitura de seu conteúdo detectada dinamicamente:

InputView detectando ordem de leitura de conteúdo específico da plataforma

Observação

Ao contrário da definição da FlowDirection propriedade, a lógica para modos de exibição que detectam a ordem de leitura de seu conteúdo de texto não afetará o alinhamento do texto dentro do modo de exibição. Em vez disso, ele ajusta a ordem em que os blocos de texto bidirecional são dispostos.