我有一个带有CommandBar的网格。只有当指针在网格或任何子组件上悬停时,我才想显示CommandBar。
我通过在我的CommandBar事件中将IsOpen设置为true来显示PointerEntered。不幸的是,打开的CommandBar正在吞咽PointerExited事件,而我无法关闭CommandBar。
我发现的事情:
什么是吞食我的指针事件,我如何防止这一点?还是你对我的问题有不同的解决方案?
这里是一个简化的例子:
<!-- 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>发布于 2016-10-31 21:50:41
有两件事在脑海中浮现:
<Page>
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Grid PointerEntered="Grid_PointerEntered" PointerExited="Grid_PointerExited">
<CommandBar x:Name="bar" IsSticky="True" VerticalAlignment="Bottom">
<AppBarButton Icon="Accept" Label="Done"/>
</CommandBar>
</Grid>
</Grid>
</Page>private void Grid_PointerEntered(object sender, PointerRoutedEventArgs e)
{
bar.IsOpen = true;
}
private void Grid_PointerExited(object sender, PointerRoutedEventArgs e)
{
bar.IsOpen = false;
}https://stackoverflow.com/questions/40345050
复制相似问题