XAML WP8.1 AppBarButton持有事件

时间:2015-10-04 10:52:33

标签: c# xaml windows-phone-8

我有以下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

1 个答案:

答案 0 :(得分:0)

这些事件处理程序的存在是因为AppBarButton继承自Button。 https://msdn.microsoft.com/pl-pl/library/windows/apps/windows.ui.xaml.controls.appbarbutton.aspx

但是!我认为微软不希望开发人员实现与app bar按钮的交互。这不是正确的用户体验,你应该避免这种情况。我相信没有人能找到它;)