2016-04-04 11 views
0

私はプレーンテキストファイルを開き、そのファイルの内容をテキストボックスに表示するWindows 10 UWPアプリケーションを作成しています。しかし、私はいくつかのファイルを表示するいくつかの奇妙な問題があります。いくつかのファイルを開くと、XAMLコードで「左から右」と指定されていても、テキストボックスの向きは通常の「左から右」から「右から左」にシフトします。UWP TextBoxテキストオリエンテーションの問題

これは、このコードを使用してファイルを開くときにのみ発生します(エンコーディングを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); 

は、いくつかのスクリーンショットです。

With the first piece of code (UTF8)

With the second piece of code (Or with ANSI)

私はこれで真剣に深く困惑している、本当にすべての助けに感謝します。

編集:ここでは、テキストボックスのための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"/> 
+0

xamlコードを投稿してください –

+0

上記のコードを使用して問題を再現できません。ファイルの一部が正しく表示されることを意味しましたが、一部は表示できません。これが主にファイルの問題です。 >「ファイルの一部」をアップロードします。 –

+0

私は質問にテキストボックスのXAMLコードを追加しました。 –

答えて

0

私はそれを回避する方法を発見した、と私は私のテキストボックスのXAMLコードで正しいプロパティを使用していなかったことに気づきました。

TextAlignment="Left" 

をそして、それは今、いつでもそれを喜んで右にテキストを揃える停止:代わりに

FlowDirection="LeftToRight" 

を使用しての

は、私が使用していました。

編集:

実際には、上記の問題のすべてを解決するため、私は、私はロードしたいファイルからBOM(UTF-8ファイルの最初の3バイト)を削除しなければならなかったしませんでした、なんらかの理由でテキストがテキストボックスに戻って表示される原因になっているからです。

メモ帳は、メモ帳、Visual Studioなどのプログラムを作成する唯一の開発者/企業の1人で、UTF-8ファイルにBOMを追加し、プラットフォーム(UWP)はUTF-8 BOMで正常に動作しません。

関連する問題