2017-05-23 4 views
0

誰かがcomboboxアイテムとしてチェックボックスを持つコンボボックスのスタイルを設定する方法を教えてください。私は無駄に重複を見つけようとしたので、これが重複した質問であれば、正しいものを教えてください。現在起こっている動作は、マウスが項目の上を移動すると背景と前景を黒くすることです。私が望むのは、バックグラウンドが灰色であるか、または白い白いマウスが前面に浮かんでいる前景です。私は私の人生のために、これを実現するための正しいスタイルのカラーブラシを見つけ出すことはできません...どんな助けも素晴らしいでしょう!ここでWPF Comboboxアイテムスタイル

はXAMLです:

<ComboBox ItemsSource="{Binding PromptFilterList}"> 
<ComboBox.ItemTemplate> 
    <DataTemplate> 
     <CheckBox IsChecked="{Binding IsSelected}" Content="{Binding Item.Description}"/> 
    </DataTemplate> 
</ComboBox.ItemTemplate> 

は、ここでは、マウスが項目の上にあるときに文字が読みやすいではありません見ることができるように、何が起こるかです:

enter image description here

+0

コンボボックスのハイライトカラーを変更したいとします。それを検索する方が簡単です。それは静的リソースの鍵です。 –

答えて

0

私はこのことを願っていますあなたを助けるかもしれません。

<ControlTemplate TargetType="{x:Type ComboBoxItem}"> 
<ControlTemplate.Triggers> 
    <Trigger Property="IsHighlighted" Value="true"> 
    <Setter Property="Opacity" TargetName="Border" Value="1" /> 
    <Setter Property="Background" TargetName="Border" Value="{your requirement}" /> 
    <Setter Property="BorderBrush" TargetName="Border" Value="{your requirement}" /> 
    <Setter Property="Foreground" Value="{your requirement}" />        
    </Trigger> 
</ControlTemplate.Triggers> 
</ControlTemplate> 
0

ここで私がコメントで言及した強調色のリソースです。 WPFでは、ハイライトなどのシステムカラーは、あらかじめ定義された静的キーを持つブラシリソースです。指定されたスコープでは、そのキーで新しいリソースを定義することができ、デフォルトを上書きします。

quite a long list of those resource keysがあります。

<ComboBox ItemsSource="{Binding PromptFilterList}"> 
    <ComboBox.Resources> 
     <SolidColorBrush 
      x:Key="{x:Static SystemColors.HighlightBrushKey}" 
      Color="SkyBlue" 
      /> 
     <SolidColorBrush 
      x:Key="{x:Static SystemColors.HighlightTextBrushKey}" 
      Color="White" 
      /> 
    </ComboBox.Resources> 
    <ComboBox.ItemTemplate> 
     <DataTemplate> 
      <CheckBox 
       IsChecked="{Binding IsSelected}" 
       Content="{Binding Item.Description}" 
       /> 
     </DataTemplate> 
    </ComboBox.ItemTemplate>