Я пытаюсь управлять цветом ComboBox.Хотя можно изменить цвет фона, я не могу найти свойство для контура границы.
Просто нарисовать квадрат, как граница, не будет в темной теме из-за стрелки.Это приводит меня к выводу, что эта граница может быть действительным файлом изображения.
Возможно ли заменить это?
ОБНОВЛЕНИЕ: Я реализовал решение @AhmedAbdelhameed - теперь оно выглядит намного лучше.Однако для плоского стиля я должен был отрегулировать прямоугольник следующим образом:
using (var p = new Pen(this.BorderColor, 1))
{
g.DrawRectangle(p, 0, 0, Width - buttonWidth - 1, Height - 1);
}
Я также обменял 'BorderColor', чтобы соответствовать остальной части моего пользовательского интерфейса:
public CustomComboBox()
{
BorderColor = Color.Gray;
}
Этопока результат:

То, что я хотел бы сделать сейчас, - это изменить фактическую кнопку выпадающего меню (возможно,с оверлеем png) только в темной теме
ОБНОВЛЕНИЕ: Мне удалось добавить ящик цен в пользовательский элемент управления со следующим кодом:
using (var g = Graphics.FromHwnd(Handle))
{
using (var p = new Pen(this.BorderColor, 1))
{
g.DrawRectangle(p, 0, 0, Width - buttonWidth - 1, Height - 1);
}
if (Properties.Settings.Default.Theme == "Dark")
{
g.DrawImageUnscaled(Properties.Resources.dropdown, new Point(Width - buttonWidth - 1));
}
}
выглядит потрясающе!Более или менее по совпадению, которое я не понимаю, темная выпадающая кнопка даже исчезает, когда я меняю тему в выпадающем списке тем.
До - После сравнения:
