gpt4 book ai didi

WPF Popup IsOpen 问题

转载 作者:行者123 更新时间:2023-12-04 21:15:03 25 4
gpt4 key购买 nike

使用找到的概念here on StackOverflow . 请注意 ToggleButton.IsHitTestVisible绑定(bind)到 Popup.IsOpen , 与 StaysOpen="False" . 这应该意味着触摸 Popup 之外的任何地方会导致它关闭。然而...

触摸/点击 ListBoxItemItemsControl不会关闭 Popup ,正如预期的那样。触摸 Popup 中的任何其他位置确实关闭它。根据设置的方式,这似乎没有加起来。

<Grid ClipToBounds="True">
<Border Name="Root">
<ToggleButton x:Name="PART_Toggle"
ClickMode="Release"
IsHitTestVisible="{Binding ElementName=PART_Popup,
Path=IsOpen,
Mode=OneWay,
Converter={StaticResource BooleanInverter}}"/>
</Border>
<Popup x:Name="PART_Popup"
IsOpen="{Binding ElementName=PART_Toggle,
Path=IsChecked}"
PlacementTarget="{Binding ElementName=PART_Toggle}"
StaysOpen="False">
<Grid Background="Transparent">
<Grid>
<!-- Anything here (outside of the Item) -->
<ItemsControl>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<!-- Anything in this item template works. The popup does not close -->
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
</Border>
</Grid>
</Popup>
</Grid>

有任何想法吗?谢谢。

编辑:已解决

事实证明这是发生的,因为它位于从 ListBox 派生的自定义控件中。 .在我提出这个问题时,它似乎并不相关,抱歉。

最佳答案

我认为在您的情况下,问题出在弹出窗口的位置或大小上。尝试您的代码时,它确实有效,但是我必须设置 Placement="Center"在弹出窗口上并设置弹出窗口内网格的大小。

没有前者,弹出窗口不会放在里面,而没有后者,弹出窗口的大小只是其内容的大小(意味着没有外部可以点击)。

尝试首先将弹出窗口的背景设置为红色或其他内容,以查看弹出窗口的实际位置和大小是否正确。

关于WPF Popup IsOpen 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16245172/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com