Хотя я понимаю, что вопрос был предназначен для winforms, пожалуйста, позвольте мне дать ответ для ищущих wpf (как я и получил здесь, на самом деле).
просто поместите что-то подобное в поле со списком.
<Grid>
<ComboBox Width="1" Height="1" IsDropDownOpen="{Binding ElementName=TButton,Path=IsChecked,Mode=TwoWay}">
<Grid Width="200" Height="400" Background="BlanchedAlmond" Margin="-5" IsHitTestVisible="True">
<Button Background="Transparent"></Button> <--------- This is the equivalent of a e.handled
<StackPanel>
<Button Content="Button 1"/>
<Button Content="Button 1"/>
<Button Content="Button 1"/>
<Button Content="Button 1"/>
</StackPanel>
</Grid>
</ComboBox>
<ToggleButton x:Name="TButton" Content="Drop" MaxHeight="40" MaxWidth="40"/>
</Grid>
Быстрое и грязное исправление для приличного, беспроблемного управления выпадающим меню.
Когда вы нажимаете элемент со списком, вы фактически нажимаете невидимую кнопку, и комбо остается открытым.
Я пробовал с самым ярким видимым прямоугольником, но без кубиков. Это делает трюк.
Примечание
Следует заменить невидимый фон стилем, который полностью удаляет кнопку (когда мышь нажата или выполнен щелчок).
Также было бы неплохо использовать иконку / путь удаления шрифта вместо drop . :)
Я еще раз прошу прощения за публикацию здесь. Я искал повсюду быстрое раскрывающееся управление с 0 внешними зависимостями (всплывающее окно не будет делать), и все, на что я наткнулся, это смехотворно (без необходимости) сложные реализации. Я надеюсь, что это приведет кого-то в правильном направлении!
Удачи вам!
Редактировать
Простая непрозрачность 0 подойдет. Doh ...