У меня проблема с подсветкой ComboBox, которая показывает черный текст на синем фоне, когда текст для выделения должен быть белым.C# WPF - ComboBox выделяет цвет текста вопроса
У меня есть примеры ComboBox, которые используют ComboBoxItems, где Content является строкой. Комбобокс в этих случаях ведет себя так, как ожидалось, - когда выпадающее поле выпадает, если вы выделяете элемент, он отображает белый текст на синем черном фоне.
Однако у меня есть пример ComboBox, где Содержимое каждого ComboBoxItem является сеткой (сетка содержит 2 столбца - первая, которая содержит текст, а вторая строка - это поле со списком толщины линии). В этом случае, когда выпадающее поле сброшено, если вы выделите элемент, он отобразит черный текст на синем фоне вместо белого текста. Примечание: даже если я удаляю часть строки, и поэтому у меня есть только один столбец с текстом, я все еще вижу проблему.
Ближайшим, к которому я пришел для решения проблемы, является добавление ресурса в поле со списком для SystemColors.HighlightBrushKey и SystemColors.HighlightTextBrushKey, где я устанавливаю цвет кисти. Однако SystemColors.HighlightBrushKey правильно изменяет задний цвет выделения (это не то, что я хочу), и когда я пытаюсь использовать SystemColors.HighlightTextBrushKey, который, как я думал, изменит цвет текста выделенного элемента, ничего не произойдет (цвет не меняется).
Пример отредактированный код:
var combo = new ComboBox();
Func<double, object> build = d =>
{
var grid = new Grid();
grid.ColumnDefinitions.Add(new ColumnDefinition {Width = GridLength.Auto});
var label = new Label {Content = d};
grid.Children.Add(label);
Grid.SetColumn(label, 0);
var comboBoxItem = new ComboBoxItem {Content = grid, Tag = d};
return comboBoxItem;
};
combo.Items.Add(build(0.5));
combo.Items.Add(build(1));
combo.Items.Add(build(2));
...
Я пробовал:
combo.Resources.Add(SystemColors.HighlightBrushKey, Brushes.Green); // this does set the back to green (but is not what I want)
combo.Resources.Add(SystemColors.HighlightTextBrushKey, Brushes.White); // this does not change the text colour to white it stays as black
Любая помощь приветствуется, спасибо.
Спасибо за ответ, Я могу изменить TextBlock, и это отлично работает. – TheBlackKnight