7
A
回答
2
這裏有一個稍微天真的做法:
<ComboBox
ItemsSource="{x:Static Fonts.SystemFontFamilies}"
Width="100"
>
<ComboBox.Style>
<Style TargetType="ComboBox">
<Setter Property="Background" Value="Green" />
<Style.Triggers>
<Trigger Property="IsDropDownOpen" Value="True">
<Setter Property="Background" Value="Red" />
</Trigger>
</Style.Triggers>
</Style>
</ComboBox.Style>
</ComboBox>
最初,這臺Background
屬性Green
,但安排它去Red
下拉出現時。但是,有兩個問題:
- 在某些Windows主題(例如,在Vista和Windows 7中使用Aero主題),綠色背景被通過主題使用指示藍色顏色掩蓋了下拉的按鈕已被按下。所以按鈕在淡入青色之前會短暫地變綠。
ComboBox.Background
屬性隻影響按鈕本身的外觀,而不影響下拉列表。有可能你想要做的是改變彈出部分的背景顏色。
如果2是你想要的,這樣做的伎倆:
<ComboBox
ItemsSource="{x:Static Fonts.SystemFontFamilies}"
Width="100" >
<ComboBox.Resources>
<Style TargetType="ComboBoxItem">
<Setter Property="Background" Value="Orange" />
</Style>
</ComboBox.Resources>
</ComboBox>
嚴格地說,這實際上改變出現在下拉列表中ComboBoxItem
控制的背景顏色,但將產生預期的效果。
但是,如果您想修復1,則需要自定義模板,因爲內置的ComboBox
模板並不能真正爲Background
屬性提供很好的支持,因爲它會更改按鈕部分的顏色在各種情況下。 Aero主題的外觀ComboBox
實際上不是爲支持自定義背景色而設計的,因此您需要爲控件創建自己的自定義外觀。
0
好了,要回答你的代碼背後的問題:
項添加到您的組合框:
foreach (String tag in tags)
{
ComboBoxItem item = new ComboBoxItem();
item.Content = tag;
cbTags.Items.Add(item);
}
然後你就可以修改項目的背景顏色:
((ComboBox)o).Background = GetBrushByRGB(r, g, b);
foreach (ComboBoxItem item in ((ComboBox)o).Items)
{
item.Background = GetBrushByRGB(r, g, b);
}
所以基本上你需要改變ComboBoxItem的背景顏色。
0
首先,您需要獲取Combobox的默認模板(如果需要它們,請參閱下面的詳細信息)。然後,把這個XAML的第一個「ControlTemplate.Triggers」標籤內:
<DataTrigger Binding="{Binding IsDropDownOpen, RelativeSource={RelativeSource TemplatedParent}}" Value="True">
<Setter Property="Background" TargetName="templateRoot" Value="Red"/>
</DataTrigger>
你的組合框按鈕爲紅色時的下拉是開放的。
獲取默認模板:在Visual Studio 2015中,以設計模式查看您的頁面。然後,右鍵單擊組合框,然後選擇「編輯模板 - >編輯副本」。這將爲您生成默認模板。
相關問題
- 1. WPF組合框禁用背景顏色
- 2. WPF更改組合框的背景顏色
- 3. WPF組合框的顏色
- 4. 更改組合框邊框顏色
- 5. 如何更改組合框的背景
- 6. WPF:多個前景顏色組合框
- 7. 如何更改組合框的背景顏色
- 8. WPF xaml綁定組合框背景顏色爲SelectedItem的顏色
- 9. 更改MFC中組合框的項目背景顏色?
- 10. 改變組合框的背景色,根本不改變顏色
- 11. 更改WPF組合框的邊框顏色
- 12. 如何更改WPF組合框中選定文本的顏色?
- 13. 如何更改所有組合框元素上的組合框的背景顏色?
- 14. 更改WPF數據綁定組合框中分隔符的背景顏色
- 15. WPF更改代碼中可編輯組合框的背景顏色
- 16. Jquery:與背景組合框
- 17. WPF Datagrid,設置組合框的背景
- 18. WPF組合框與自定義樣式,不能展開後點擊組合框內的組合框
- 19. WPF ComboBoxItem當組合框SelectedIndex爲-1時,背景更改
- 20. 如何更改組合框WPF的CornerRadius
- 21. 如何更改禁用的背景色組合框
- 22. 文本框和組合框不顯示主題背景顏色
- 23. WPF組合框顏色綁定問題
- 24. C#組合框顏色
- 25. 以編程方式更改WPF可編輯組合框的背景顏色
- 26. WPF:在某些組合框項目更改背景
- 27. 如何綁定組合框組合框在WPF
- 28. 如何在datagrid中打開組合框
- 29. 組合框選定索引更改所有組合框更改
- 30. 當組合框在組合框中時,在vbnet中填充組合框
你能告訴我們你正在使用什麼語言或框架嗎? – Dominic 2013-02-12 05:40:55
什麼編程語言? – spajce 2013-02-12 06:31:35
你好,這是WPF(。淨) – Nimesh 2013-02-13 06:11:43