Introduction
Themes\Generic.xaml 内に定義した ControlTemplate についてのお話。
ControlTemplte 内のGridでRrsourcesセクションを用意し、下記のようなコードを書いた。
1 | <Style TargetType="{x:Type controls:TestControl}"> |
期待しているのは、ListBoxのStyleを継承した、新しいStyleを継承すること。上のコードは省略してあって、本当はListBoxがもう少しあります。
ところが、上のコントロールを配置、実行するとStyleの継承がうまくいきませんでした。OSSのライブラリのクールなスタイルを継承したはずが、Windowsのもっさいスタイルが適用されていました…. しかも、Windows7だとうまくいくのに、Windows10だとうまくいかない、という不思議な挙動。
何故?
Answer
Windows7と10で挙動が異なる原因は不明でしたが、本現象は、ListBoxに対してStyleを使うのをやめると治ります。
つまり、直接ListBoxの要素のプロパティに値を設定します。
かなり納得がいかない修正でしたが、関係しそうな話題は見つかりました。
とりあえず解決したので良しとします。会社で無駄に悩みました。