WPFでルビ（ふりがな）を表示するには？


タイトルの通りなのですが、WPFでテキストにルビをつける方法が分からないのです。

Canvasあたりにゴリゴリとコードビハインドで描画すればでき……そう？な気はしますが、どうせなら何らかのプロパティ（コレクションでしょうか）に本文やルビを設定すると表示できるようなUserControl/CustomControlを作る方法が分かればありがたいところです。




おそらくWebBrowserコントロールを使って<ruby>タグでルビを付ける方法が、最も安全で手っ取り早いと思われます。

ユーザコントロールなどにWebBrowserコントロールを配置して、以下のようにNavigateToStringを呼び出すことでルビ付きのHTMLを表示させることができます。

[code]

    webBrowser.NavigateToString("<html><body><ruby>螺鈿<rt>らでん</rt></ruby></body></html>");
    
[/code]

試しに上記の原理で動くラベル風のカスタムコントロールを[作ってみました](https://github.com/payaneco/WpfRubyLabel)。

[![スクリーンショット](https://i.stack.imgur.com/T2NpP.png)](https://i.stack.imgur.com/T2NpP.png)

リンク先のカスタムコントロールをビルドしてdllを参照することで、上記スクリーンショットのように青空文庫風にルビを振ったり、 `Append(string
text, string ruby)` メソッドを呼び出してルビ付きのhtmlを生成したりすることができます。  
もしどなたかが同様のコントロールを作成するときの参考になれば幸いです。

