【发布时间】:2023-04-03 03:27:01
【问题描述】:
我有一个带有命令栏的网格。我只想在指针悬停在 Grid 或任何子组件上时才显示 CommandBar。
我通过在 PointerEntered 事件中将 IsOpen 设置为 true 来显示 CommandBar。不幸的是,打开的 CommandBar 正在吞噬 PointerExited 事件,我无法关闭 CommandBar。
我发现的东西:
- 如果我将 IsEnabled 设置为 true,则 CommandBar 运行良好...除了我的按钮被禁用 ;)
- 如果我设置 ClosedDisplayMode 而不是 IsOpen,它也可以工作 - 但隐藏和打开之间没有很好的过渡
是什么吞噬了我的指针事件,我该如何防止呢?或者您对我的问题有不同的解决方案?
这里是一个简化的例子:
<!-- Some content -->
<!-- Grid with command bar -->
<Grid Height="300" Width="700" PointerEntered="Grid_PointerEntered" PointerExited="Grid_PointerExited" BorderBrush="Black" BorderThickness="1">
<!-- Template just set Visibility of "MoreButton" to Collapsed (hiding it because it is not needed if you have hover ability) -->
<CommandBar VerticalAlignment="Bottom" Canvas.ZIndex="1" x:Name="uxCommandBar" Template="{StaticResource CommandBarControlTemplate1}">
<!-- Buttons -->
</CommandBar>
<!-- Other content stuff - here a Canvas for providing a hoverable area -->
<Canvas HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Background="Red"></Canvas>
</Grid>
【问题讨论】: