tmori3y2のブログ

主にWindowsのプログラムなど

初心者が迷ったWPFの上付き文字/下付き文字

WPF UserControlで下付き文字をラベルやDataGridのHeaderに設定したくてTypographyというのを調べた。

WPF のタイポグラフィ

Typography クラス (System.Windows.Documents)

しかし、Windows 7/.NET 4.5.2だと上手く動かない。

.NET 3.xだと動いていたという情報もあるが、Windows 7はサポート外らしい。

stackoverflow.com

stackoverflow.com

OpenTypeフォント拡張機能も関係しているとか・・・

OpenType フォントの機能

KB2670838を入れたら良いという話もあるが、正直標準のWindows Updateにも載らないものを入れるのには躊躇する。

https://support.microsoft.com/ja-jp/kb/2670838

代替手段としては、BaselineAlignmentを使用する方法。

ただし、あくまでもベースラインをずらすだけなのでフォントサイズを小さくしないといけない。

「しかも、絶対値を直打ち・・・」

LabelはFlowDocumentをサポートしていないので、簡易サポートのあるTextBlockを使用する。

TextBlock クラス (System.Windows.Controls)

DataGridでも基本的に同じ方針となり、HeaderTemplateでTextBlockを使用することになる。

ソースコード

github.com