2017-06-13 3 views
0

RTFの内容を完全に読み込むWPFリッチテキストボックスが用意されています。この問題は、日本語の文字(ユーザーなど)をエディタに設定しようとするときに発生します。これを実行すると、結果は以下の通りです:WPFリッチテキストボックスで日本語の文字を設定する

After textRange.Load

それはエンコーディングについて何かを思わ... はので、私は、UnicodeではなくUTF8を使用するように私のコードを適応しました。とにかく、それは動作していません。 RTFエディタにテキストをロードするための私のコードは同じくらい簡単です、次のとおりです。

private void Window_Loaded(object sender, RoutedEventArgs e) { 

      string text = "ユーザに"; 
      TextRange textRange = new TextRange(MyRichTextBox.Document.ContentStart, MyRichTextBox.Document.ContentEnd); 
      textRange.Load(new MemoryStream(Encoding.Unicode.GetBytes(text)), DataFormats.Rtf); 
     } 

最後に、XAMLのレイアウトは特別な何かを持っていません。

<Window x:Class="Tester.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Loaded="Window_Loaded" 
    Title="MainWindow" Height="350" Width="525"> 
    <Grid> 
     <RichTextBox x:Name="MyRichTextBox" Margin="3"></RichTextBox> 
    </Grid> 
</Window> 

それは私が「...助け念のためにこのコンピュータに日本語がインストールされていて、うまく見えます。さらに、エディタに読み込まれた日本語文字を(Ctrl + V)ペーストすると、動作するように見えます。事前に

After Control+V

ありがとう!

+0

Encoding.Unicode .GetBytes(text)これはデフォルトでUTF-8とは何ですか? –

+0

@ johnny5どういう意味ですか? –

答えて

0

生テキストをDataFormats.Rtfとして使用することはできません。ただし、TextRange.Textプロパティを直接設定することも、TextRange.Load(new MemoryStream(Encoding.UTF8.GetBytes("ユーザに")), DataFormats.Text)を使用することもできます。テキストを含む

RTFドキュメントは、実際には次のようになります。

{\rtf 
{\ltrch \u12518?\u12540?\u12470?\u12395?} 
} 

コード:

var text = 
@" 
{\rtf 
{\ltrch \u12518?\u12540?\u12470?\u12395?} 
} 
"; 

    var range = new TextRange(rtb.Document.ContentStart, rtb.Document.ContentEnd); 
    //range.Text = text; 
    range.Load(new MemoryStream(Encoding.Default.GetBytes(text)), DataFormats.Rtf); 

Unicodeは、この行を生成することができます。

string.Concat("ユーザに".Select(x => @"\u" + (int)x + "?")) 
+0

あなたの答えをありがとう!あなたのソリューションはうまくいくようですが、DataFormats.UnicodeTextを設定しようとすると、「追加情報: 'UnicodeText'データフォーマットはサポートされていません」例外。サポートされていませんか? –

+0

申し訳ありませんが、私は 'Encoding.UTF8.GetBytes'で' DataFormats.Text'を意味しました。 – Xiaoy312

関連する問題