持有事件执行时(UWP)不应触发Tapped事件

时间:2017-08-03 07:48:44

标签: c# uwp

因为UWP中没有Hold和Tap事件,所以我在UWP中使用Tapped And Holding事件。

对于Windows phone 8应用我使用点按手持事件按钮。当我按住按钮时,点击事件不会发生火灾。

但是在UWP中我尝试了Click and Tapped事件,但是当我按住按钮时都会触发。

请建议我按住按钮时其他事件不应该触发的其他方法 在这里举行活动是必要的,建议我替换Tapped和click事件,因为当我按住并释放按钮时这些事件会触发

XAML

<StackPanel Grid.Column="0" Grid.Row="0" HorizontalAlignment="Left" VerticalAlignment="Center">
       <Button Name="BackwardButton" 
               FontFamily="Segoe MDL2 Assets" Content="&#xE26C;"
               FontSize="30" Background="Transparent"
               Tapped="BackwardButton_Tapped" Holding="BackwardButton_Holding"
               PointerExited="BackwardButton_PointerExited"/></StackPanel>



<TextBlock Name="txtBox1"  FontSize="18"
           HorizontalAlignment="Center" VerticalAlignment="Bottom"/>

C#

private static int i;
private void BackwardButton_Tapped(object sender, TappedRoutedEventArgs e)
{
    i++;

    txtBox1.Text = i.ToString();
}


private int a = 10;
private void BackwardButton_Holding(object sender, HoldingRoutedEventArgs e)
{
     BackwardButton.Content = "\xE100";
     try
     {
         a++;
         txtBox1.Text = a.ToString();
     }
     catch (Exception)
     {
         //Exception(ex);
     }
}



private void BackwardButton_PointerExited(object sender, PointerRoutedEventArgs e)
{           
    BackwardButton.Content = "\xE26C";            
}

我已经尝试过的解决方案 - https://social.msdn.microsoft.com/Forums/en-US/e386e2e8-0312-4b1e-8eea-9522db83d632/click-and-tapped-event-should-not-fire-when-holding-event-perform?forum=wpdevelop

解决方案在Windows 8上尝试但在UWP中保持并点击事件不可用 Click Event should not trigger when hold event perform

1 个答案:

答案 0 :(得分:1)

注意Holding事件将触发两次。第一次是HoldingState.Started状态,第二次是HoldingState.Completed。您所要做的就是将您的逻辑包装在以下if语句

private void BackwardButton_Holding(object sender, HoldingRoutedEventArgs e)
{
    if (e.HoldingState == Windows.UI.Input.HoldingState.Started)
    {
        ...
    }

我建议你开始使用断点来解决这个问题。通过在

处设置断点来确定从未在调用期间调用Tapped事件应该是相当直截了当的。
txtBox1.Text = i.ToString();

希望这有帮助。