WPF 组合框,如弹出窗口

Ste*_*eve 4 c# wpf

我正在尝试制作一个与组合框类似的自定义弹出窗口。

我使用切换按钮作为标题,使用弹出窗口作为内容。

<ToggleButton IsChecked="{Binding ElementName=Popup, Path=IsOpen, Mode=TwoWay}">
    ...
</ToggleButton>
    
<Popup x:Name="Popup" StaysOpen="False">
    ...
</Popup>
Run Code Online (Sandbox Code Playgroud)

除了一种情况外,这非常有效。当弹出窗口打开并再次单击时ToggleButton,弹出窗口消失,但随后立即重新打开。

看起来当我单击切换按钮时,弹出窗口检测到鼠标单击位于弹出窗口之外,因此它会自行关闭并设置ToggleButton.IsChecked = false. 然后单击设置IsChecked = true,弹出窗口再次打开。

编辑:在这种情况下,我希望弹出窗口像组合框的行为一样关闭。

有办法解决这个问题吗?

15e*_*153 5

找到按钮顶部的弹出窗口,这样用户就无法单击该按钮。Placement你可以用等等轻松做到这一点。