在ComboBox中覆盖默认的TextBlock样式
我有一个在App.xaml中定义的默认TextBlock样式,它似乎也会影响ComboBox项目的文本颜色。 现在,如何显式设置主窗口中定义的ComboBox的文本颜色? (我想保留默认样式,但是将combobox文本颜色设为蓝色而不是红色……)
App.xaml中
MainWindow.xaml
我尝试过的事情:
- 设置Combobox.Foreground
- 设置TextElement.Foreground
- 设置TextBlock.Foreground
- 在ComboBox.Resources中定义另一个隐式TextBlock样式
- 在Grid.Resources中定义另一个隐式TextBlock样式
- 在Window.Resources中定义另一个隐式TextBlock样式
除非将它们放在Application.Resources
,否则大多数隐式TextBlock样式将停在控件边界
例如,将样式放在Window.Resources
中将使其适用于所有
对象,但不适用于其他控件模板(如ComboBox
或Button
文本
我建议将您的样式移动到Window.Resources
,然后为您的ComboBox项目设置样式以获得您想要的任何前景色。
如果你想将它保存在Application.Resources
,那么我怀疑你需要追踪x:Static
刷键用于设置TextBlock.Text
颜色并覆盖你的ComboBox.Resources
颜色
您必须在ComboBoxItem上使用触发器
如果你想保持静态那么