【发布时间】:2016-04-04 15:29:22
【问题描述】:
我正在编写一个 Windows 10 UWP 应用程序,我在其中打开纯文本文件并在文本框中显示所述文件的内容。但是我在显示一些文件时遇到了一些奇怪的问题。打开一些文件后,文本框的方向从通常的“从左到右”转变为“从右到左”,即使在 XAML 代码中它被指定为“从左到右”。
这仅在我使用这段代码打开文件时发生(仅当我将编码设置为 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代码
-
无法使用上述代码重现您的问题。你的意思是有些文件可以正确显示,但有些不能吗?如果是这样,多半是文件的问题。上传>“部分文件”。
-
我已将文本框的 XAML 代码添加到我的问题中。
-
我也刚刚注意到,这只发生在带有 BOM 的 UTF-8 文本文件中。
标签: c# xaml file-io textbox win-universal-app