2017-08-03 6 views
0

UWPではホールドアンドタップイベントが利用できないため、UWPでタップアンドホールディングイベントを使用しています。イベントを保持するときにタップされたイベントは発生しません(UWP)

for Windows phone 8個のアプリ私は、ボタンのためにタップハンドホールドイベントを使用しています。ボタンをタップすると、火災ではありません。

しかしUWPでは、ClickとTappedイベントを試しましたが、ボタンを押したときに両方が起動します。

、私はここにボタン ホールディングイベントを開催する際、他のイベントは発生しませすべき他の方法が必要である私を示唆してくれタップの代替を提案し、私は保持するときに、これらのイベントが発生するので、イベントをクリックして、ボタン

を離してください

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上で試みたが、保持し、 Click Event should not trigger when hold event perform

+0

実際には、より多くのコードを表示する必要があります。私はこれを複製することはできません。 –

+0

@JustinXLもっとコードを追加しました –

+0

OK xamlが追加されました –

答えて

1

Holdingイベントが二回発生しますUWPでタップイベントは使用できませんtried-。最初の時刻はHoldingState.Startedで、2番目の時刻はHoldingState.Completedです。あなたがしなければならない

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

私もこのような問題を動作するようにブレークポイントを使用して起動することをお勧めいたしますたい、次のif文の中で、あなたのロジックをラップです。それは、このことができます

txtBox1.Text = i.ToString(); 

希望にブレークポイントを置くことによって開催中Tappedイベントが呼び出されることはありません把握するために、かなりまっすぐ進むべきです。

関連する問題