ところで、どうもこのコントロールは文字サイズの変更を想定して設計されていないらしいです。なんてこった…。
一応FontSizeプロパティに値を書くことで部分的にフォントは変えられますが、全てのコントロールにそれを書き込んでいくのはナンセンスです。おまけに、フォントサイズを変えたところでタブの高さ等は変わらないので、文字が部分的に隠れて見えなくなったりしてしまいます。
そこで、LayoutTransformを使ってみることにしました。WPFの画面表示はGPUが司っているので、割と表示内容を行列変換的なことで変形しやすくなっています。
ScaleTransformで縦横それぞれ好きな比率で引き伸ばせますね。DockPanelを引き伸ばしてみましょう。
<DockPanel.LayoutTransform> <ScaleTransform CenterX="0" CenterY="0" ScaleX="1.2" ScaleY="1.2" /> </DockPanel.LayoutTransform>
はい、縦横それぞれ1.2倍ずつしています。
しかし、これではちょっとダサくなってしまいました。
コントロール全体は大きくなったものの、ウィンドウ枠の半透明な部分のサイズが変わっていないので、リボンタブを突っ切る形で半透明な部分が終わっています。これではとてもダサいです。
そこで、RibbonWindowのGlassBorderThicknessを指定してみました。
"8,60,8,8"をセットすることで、タブの位置に合わせて透明部分を下にずらすことができます。
はい。透明な部分は下がりましたが、その透過率を下げるグラデーション?みたいなやつの位置が変わらないのでこれもこれでとてもダサくなってしまいました。
いろいろいじってみましたけど、これは変わりそうにも無いですね…。
ならばいっそのこと、その半透明な部分を無くしてしまえばいいのだ!
というわけで、GlassBorderThicknessに"8,31,8,8"を入れてみました。
タブの部分の半透明な領域は無くなってしまいましたが、落としどころとしては悪くない気はします。
ただ、LayoutTransformで全体を1.2倍しているので、あらゆるパーツのフォントポイント等が大きくなってしまうんですよね…。その辺は若干気持ち悪いですが…。
なんかいい方法は無いんですかね。
0 件のコメント:
コメントを投稿