如何更改WPF ComboBox中所选文本的颜色?

在我的应用程序中,我为TextBlocks定义了以下样式。

           

该样式是在我的应用程序的最高级别有意定义的,因此默认情况下它适用于所有TextBlock。

问题是这种风格打破了ComboBoxes中TextBlocks的行为。 通常,ComboBox中的选定项目的前景颜色更改为白色。 但是,应用此样式后,文本的前景色不会更改。

当突出显示ComboBox中的TextBlock时,如何触发文本以更改颜色?

如果您只想更改所选项目的texblock前景(例如红色),只需将其添加到您的样式资源:

    

我通过将样式从app.xaml并放入一个单独的资源字典中解决了这个问题,我在应用程序Window&Pages中根据需要将其包含在内。

这会阻止TextBlock样式影响ComboBox本的颜色。 最后,为了实现我想要的所有项目的文本颜色,我用我自己的颜色覆盖了以下默认系统颜色。

   

您是否尝试过将不同的文本样式添加到ComboBox.Resources或者包含ComboBox的控件? 这将覆盖您在更高级别设置的样式。

另一种方法是在加载时移动ComboBox的可视树并删除样式。

您可以根据第一个和重置背景属性添加第二个样式。