Visual Studio Express 2012を最近導入したのをきっかけにC#の開発をWinFormsからWPFに乗り換えてみました。
そんで以下のサイトを参考にExpressionDarkのテーマを導入してみたんですが、なぜかListBoxItemsでラベルが載ってない部分をクリックしても反応しませんでした。
ということで解決方法をサクッとメモ。
ExpressionDark.xamlを編集
てなわけで、テーマファイルを編集します。
ListBoxItemのStyleが定義されているあたりに注目します。
するとそこにはContentPresenterを内包するGridがあります。
ExpressionDark.xaml
<Style d:IsControlPart="True" TargetType="{x:Type ListBoxItem}">
...
<Grid SnapsToDevicePixels="true" Margin="1,1,1,1">
...
<ContentPresenter ... />
...
</Grid>
...
</Style>
こいつをクリック出来ればいいのですが、このままだとダメなんだなこれが。
原因はBackgroundがNullであること。てなわけでTransparentを設定してやります。
<Style d:IsControlPart="True" TargetType="{x:Type ListBoxItem}">
...
<Grid SnapsToDevicePixels="true" Margin="1,1,1,1" Background="Transparent">
...
<ContentPresenter ... />
...
</Grid>
...
</Style>
はい、一丁上がり!
Trasparentに意味があったんですね…わからんわ!すごい悩んだわ!(#^ω^)



コメント