UWP TextBox 文本方向问题

UWP TextBox Text Orientation Problems

我正在编写一个 Windows 10 UWP 应用程序,我在其中打开纯文本文件并在文本框中显示所述文件的内容。但是我在显示一些文件时遇到了一些奇怪的问题。打开某些文件后,文本框的方向从通常的 'left to right' 变为 'right to left',即使在 XAML 代码中指定为 'left to right'.

只有当我使用这段代码打开文件时才会发生这种情况(只有当我将编码设置为 UTF8 时,如果我将它设置为 ANSI,文本框将以适当的方向显示文本,但我的文件我试图打开不在 ANSI 中):

IBuffer buffer = await FileIO.ReadBufferAsync(file);
            DataReader reader = DataReader.FromBuffer(buffer);
            byte[] fileContent = new byte[reader.UnconsumedBufferLength];
            reader.ReadBytes(fileContent);
            string fileText = Encoding.UTF8.GetString(fileContent, 0, fileContent.Length);

如果我使用其他代码,它会正确显示,但在打开其他一些文本文件时会崩溃:

string fileText = await FileIO.ReadTextAsync(file);

以下是部分截图:

我对此深感困惑,非常感谢任何帮助。

编辑:这是文本框的 XAML 代码:

<TextBox x:Name="MainTextBox"
             TextWrapping="Wrap"
             AcceptsReturn="True"
             Grid.Row="2"
             ScrollViewer.VerticalScrollBarVisibility="Auto"
             ScrollViewer.HorizontalScrollBarVisibility="Auto"
             FlowDirection="LeftToRight"
             TextChanged="MainTextBox_TextChanged"
             PointerEntered="MainTextBox_PointerEntered"
             PointerExited="MainTextBox_PointerExited"/>

我找到了解决方法,并意识到我没有在我的文本框 XAML 代码中使用正确的 属性。

而不是使用

FlowDirection="LeftToRight"

我用过:

TextAlignment="Left"

而且它现在停止随时将文本右对齐。

编辑:

其实上面并没有解决所有的问题,所以我不得不从我想加载的文件中删除BOM(UTF-8文件的前三个字节),因为某些原因是什么导致文本在文本框中出现还原。

具有讽刺意味的是,微软是唯一的 devs/companies 使他们的程序(例如记事本,Visual Studio)在他们保存的 UTF-8 文件中添加 BOM,包括一个错误他们的 "star" 平台 (UWP) 中的文本框不适用于 UTF-8 BOM。