Chciałbym móc zmienić kolor obramowania kontrolek ToolStripComboBox w niektórych z moich pasków narzędzi, ponieważ domyślny kolor obramowania ComboBox przy użyciu z płaską stylizacją to SystemColors.Window, który jest zasadniczo niewidoczne w stosunku do domyślnego koloru kontrolki paska narzędziowego. Po wielu poszukiwaniach w Reflectorze nie widzę żadnego oczywistego sposobu, aby to zrobić, ponieważ cała infrastruktura odpowiedzialna za renderowanie ComboBox jest wysoce chroniona za wewnętrznymi i prywatnymi interfejsami.Zmień obramowanie ToolStripComboBox z płaskim stylem
Poza ToolStrips, często spotykanym rozwiązaniem proponowanym do ustawiania koloru obramowania na ComboBoxach jest podklasa ComboBox, nadpisanie WndProc i ręczne malowanie obramowania. Nie działa to w przypadku kontrolek ToolStripComboBox, ponieważ wewnętrzna kontrolka ComboBox jest własną prywatną podklasą ComboBox, bez żadnej możliwości, która mogłaby zastąpić wystąpienie kontrolki.
Alternatywne rozwiązanie, które rozważam, to umieszczenie jednego z rozszerzonych obiektów ComboBox w narzędziu ToolStripControlHost, co pozwala mi narysować obramowanie, ale muszę zrezygnować z niektórych profesjonalnych ulepszeń mechanizmu renderującego. Wtórną wadą, którą zauważyłem, jest to, że od czasu do czasu dostaję migotanie.
Przełączanie projektu na WPF nie jest rozwiązaniem dopuszczalnym. Kontrolowanie zawijania w formantu rodzica w celu rysowania obramowań również nie jest dopuszczalne, ponieważ nie ma to wpływu na alternatywę ToolStripControlHost.
Czy ktoś ma sprytne rozwiązanie, aby pokonać ten problem, czy też istnieje istniejąca (dopuszczalna licencjonowana) powtórna implementacja płaskiego stylu renderowania ComboBox w środowisku naturalnym, który usuwa niektóre niedociągnięcia w istniejących realizacja?