WPF ComboBox не сворачивается выпадающий после потери фокуса
У меня очень странная ситуация. У меня есть ComboBox, который загружен с некоторыми элементами. Когда я нажимаю на него, раскрывающийся список раскрывает все элементы. Если я сейчас открою другое приложение, такое как "Блокнот", выпадающий список не рухнет, как я ожидаю. В результате любое перекрывающееся приложение, такое как открытый Блокнот, будет отображаться как находящееся между WPF, на котором размещен ComboBox, и раскрывающимся списком ComboBox, как на скриншоте ниже. Вероятно, z-порядок как-то совершенно неверен.
Я считаю, что причиной такого поведения является тот факт, что выпадающий не рухнул в первую очередь. Мой ComboBox является частью Usercontrol, и его xaml выглядит так:
<ComboBox ItemsSource="{Binding ValueSet}"
SelectedItem="{Binding SelectedNode}"
DisplayMemberPath="Name"
BorderBrush="Green"
BorderThickness="1" SelectionChanged="ComboBox_SelectionChanged">
</ComboBox>
1 ответ
На мой взгляд, в вашем xaml нет проблем с z-порядком. Актуальная проблема в шаблоне ComboBox в вашем приложении. Вы должны найти фактический стиль (или шаблон элемента управления), на котором основана ваша Combo, и проверить элемент управления Popup(обычно называемый "PART_Popup") внутри этого шаблона элемента управления. Свойство IsOpen всплывающего окна должно быть связано со свойством ComboBox IsDropDownOpened, например:
`IsOpen="{Binding IsDropDownOpen, RelativeSource={RelativeSource TemplatedParent}}"`
В любом случае вам следует искать решение вашей проблемы в неверном шаблоне элемента управления Combo. Есть что-то, что заставляет его открываться (возможно, делая свойство IsOpen внутреннего элемента управления Popup всегда истинным). Дайте мне знать, если вам нужно больше предложений.