一旦失去焦点,WPF ComboBox就不会折叠下拉列表

时间:2016-05-11 00:05:09

标签: wpf xaml z-order

我有一个非常奇怪的情况。我有ComboBox,它载有一些物品。当我点击它时,下拉菜单会显示所有项目。 如果我现在打开另一个应用程序,如记事本,下拉列表将不会崩溃,我期望发生。因此,任何重叠的应用程序(如打开的记事本)都将显示为位于托管ComboBox的WPF和ComboBox下拉列表之间,如下面的屏幕截图所示。可能z-order完全错了。

我认为这种行为的原因是下拉列表没有首先崩溃。我的ComboBox是Usercontrol的一部分,它的xaml就像:

http://windows-10:8888/Incident?$filter=cast(REPORTEDDATE,%27Edm.DateTimeOffset%27)%20gt%20%202016-05-10T22:38:00.000Z

enter image description here

1 个答案:

答案 0 :(得分:1)

在我看来,你的xaml中的z顺序没有任何问题。实际问题出在应用程序的ComboBox模板中。您应该找到Combo所基于的实际样式(或控件模板),并检查该控件模板中的Popup(通常命名为" PART_Popup")控件。 Popup的IsOpen属性应绑定到ComboBox IsDropDownOpened属性,如下所示:

`IsOpen="{Binding IsDropDownOpen, RelativeSource={RelativeSource TemplatedParent}}"`

您应该在Combo控件的错误控制模板中搜索解决方案以解决您的问题。有一些东西可以让它被打开(可能是通过使内部Popup控件的IsOpen属性始终为true)。如果您需要更多建议,请告诉我。