WPFのテーマを適用したらListBoxItemの行クリックが反応しない件

C#

Visual Studio Express 2012を最近導入したのをきっかけにC#の開発をWinFormsからWPFに乗り換えてみました。
そんで以下のサイトを参考にExpressionDarkのテーマを導入してみたんですが、なぜかListBoxItemsでラベルが載ってない部分をクリックしても反応しませんでした。

ということで解決方法をサクッとメモ。

スポンサーリンク
スポンサーリンク

ExpressionDark.xamlを編集

てなわけで、テーマファイルを編集します。
ListBoxItemStyleが定義されているあたりに注目します。
するとそこにはContentPresenterを内包するGridがあります。

ExpressionDark.xaml

<Style d:IsControlPart="True" TargetType="{x:Type ListBoxItem}">
    ...
    <Grid SnapsToDevicePixels="true" Margin="1,1,1,1">  
        ...
        <ContentPresenter ... />
        ...
    </Grid>
    ...
</Style>

こいつをクリック出来ればいいのですが、このままだとダメなんだなこれが。
原因はBackgroundNullであること。てなわけでTransparentを設定してやります。

<Style d:IsControlPart="True" TargetType="{x:Type ListBoxItem}">
    ...
    <Grid SnapsToDevicePixels="true" Margin="1,1,1,1" Background="Transparent">
        ...
        <ContentPresenter ... />
        ...
    </Grid>
    ...
</Style>

はい、一丁上がり!
Trasparentに意味があったんですね…わからんわ!すごい悩んだわ!(#^ω^)

スポンサーリンク
管理人

1983年生まれのえんじにゃー🐈
趣味はエレキギターなど。作曲したい。
WoWs/プリコネ/デレステ
記事に関する質問はお気軽にどうぞ。

たかおファン(surface0)をフォローする
たかおファン(surface0)をフォローする
Rain or Shine

コメント

タイトルとURLをコピーしました