Partilhar 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 em Entry, Editore 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 Entryas instâncias de , Editor, e Label podem ter a ordem de leitura de seu conteúdo detectada dinamicamente:

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

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.