当ClickMode =按时,弹出窗口不会关闭

时间:2017-11-09 23:15:51

标签: c# wpf xaml popup togglebutton

我有ToggleButton,显示Popup。显示Popup,因为StaysOpen="False"会自动关闭。但ClickMode="Press"打破了弹出窗口,因为Popup未正确捕获鼠标。

这可以在不使用ClickMode="Release"的情况下在XAML或代码中解决吗?

以下代码重现了该问题:

<ToggleButton x:Name="toggleButton"
              ClickMode="Press"
              Content="Toggle Popup" />
<Popup Width="{Binding ElementName=toggleButton, Path=ActualWidth}"
       IsOpen="{Binding IsChecked, ElementName=toggleButton}"
       Placement="Bottom"
       PlacementTarget="{Binding ElementName=toggleButton}"
       StaysOpen="False">
    <Button>Content</Button>
</Popup>

我找到了解决方案:

ToggleButton添加LostMouseCapture事件处理程序和(如果Mouse.Captured == null)调用Mouse.Capture(inputElement, CaptureMode.SubTree)。其中inputElement是实施Popup的{​​{1}}中的第一个逻辑子项。

0 个答案:

没有答案