この WPF アプリケーションには、スタイルを解除すると、強調表示、ホバー、または選択された項目などの既定の Windows テーマに一致するカスタム リストボックスがあります (つまり、素敵な青の半透明のグラデーション)。
ただし、独自の ListBoxItem テンプレートを作成して、このコードのような値を使用しようとすると...
<Trigger Property="Selector.IsSelected" Value="True">
<Setter TargetName="Bd" Property="Panel.Background" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}" />
<Setter Property="TextElement.Foreground" Value="{DynamicResource {x:Static SystemColors.HighlightTextBrushKey}}" />
</Trigger>
...コントロールは、Aero テーマのすべての痕跡を失い、古い Win95/Classic の外観に戻ります。「ねえ... テーマの「ハイライト」スタイルを境界線に適用してください。
繰り返しますが、リソースは、コントロールを再テンプレート化するまでそこにあるようにロードされますが、テーマの組み込みスタイルにアクセスするにはどうすればよいでしょうか? 結局のところ、その「選択」の外観はいたるところにあります... ListBox、ComboBox、ListView、どこでも。車輪を再発明する必要なく、私たちもそれをコントロールしたいだけです。
注: ShowMeTheTemplate.exe アプリを使用してデフォルトの「Aero」スタイルを取得しましたが、これも実行時に表示されるものではありません。