我有以下xaml:
<Page.BottomAppBar>
<CommandBar>
<AppBarButton Label="- запись -" Icon="Microphone" Holding="AppBarButton_Holding" PointerPressed="AppBarButton_PointerPressed" PointerReleased="AppBarButton_PointerReleased" />
<AppBarButton Label="обновить" Icon="Refresh" Click="AppBarButton_Click" />
<CommandBar.SecondaryCommands>
<AppBarButton Label="выйти" Click="AppBarButton_Click_1"/>
</CommandBar.SecondaryCommands>
</CommandBar>
</Page.BottomAppBar>
所以我试图抓住AppBarButton上的Holding
事件(或SOMEHOW理解该按钮被点击然后发布):
private void AppBarButton_Holding(object sender, HoldingRoutedEventArgs e)
{
string holdingState = (e.HoldingState == Windows.UI.Input.HoldingState.Started) ? "Holding" : "Held";
Debug.WriteLine(holdingState);
}
private void AppBarButton_PointerPressed(object sender, PointerRoutedEventArgs e)
{
Debug.WriteLine("pressed!");
}
private void AppBarButton_PointerReleased(object sender, PointerRoutedEventArgs e)
{
Debug.WriteLine("released!");
}
但是我没有进入这些处理程序的任何,这对我来说很奇怪......
关于此的文档很安静: https://msdn.microsoft.com/library/windows/apps/windows.ui.xaml.controls.appbarbutton.aspx
保持在发生其他未处理的保持交互时发生 在该元素的命中测试区域。 (继承自UIElement)
我发现了类似的静止,但看起来没有答案: WP8.1 AppBarButton holding event
答案 0 :(得分:0)
这些事件处理程序的存在是因为AppBarButton继承自Button。 https://msdn.microsoft.com/pl-pl/library/windows/apps/windows.ui.xaml.controls.appbarbutton.aspx
但是!我认为微软不希望开发人员实现与app bar按钮的交互。这不是正确的用户体验,你应该避免这种情况。我相信没有人能找到它;)