2016-09-13 1 views
0

Ich bin Anfänger in UWP. Ich möchte ein Klickereignis zu einem Bild hinzufügen, das den offenen Status von splitview ändert. So habe ich ein Bild in ma XAML:C#: PointerPressed wurde zweimal aufgerufen, wenn ich auf das Bild klicke

<Image x:Name="image_1_6" HorizontalAlignment="Left" Height="200" Margin="1225,559,-171,0" VerticalAlignment="Top" Width="200" Source="Assets\images.jpg" PointerPressed="image_1_6_PointerPressed"/> 

Ich definiere image_1_6_PointerPressed so ähnlich wie folgt aus:

private void image_1_6_PointerPressed(object sender, Windows.UI.Xaml.Input.PointerRoutedEventArgs e) 
    { 
     mySplitView.IsPaneOpen = !mySplitView.IsPaneOpen; 
    } 

Aber wenn ich auf das Bild klicken die mySplitView öffnen und schließen! Kann irgendjemand mir dabei helfen? Vielen Dank.

+0

Wenn alles andere fehlschlägt, können Sie auch 'if (mySplitView.IsPaneOpen == false) versuchen mySplitView.IsPaneOpen = true; else mySplitView.IsPaneOpen = false; ' –

Antwort

2

pointerpressed arbeitet nicht wie als Click-Ereignis. Es ruft auf, wenn Sie die Taste gedrückt halten und wenn Sie das Ereignis beendet haben. Also, wenn Sie auf Bild klicken, denken Sie, dass dieses Ereignis zweimal anruft! Sie sollten dafür Tapped Ereignis aufrufen.

<Image x:Name="image_1_6" HorizontalAlignment="Left" Height="200" Margin="1225,559,-171,0" VerticalAlignment="Top" Width="200" Source="Assets\images.jpg" Tapped="image_1_6_PointerPressed"/> 
+0

Vielen Dank! :) –

+0

Eine Sache, die ich in den Code hinter der Methode image_1_6_PointerPressed hinzugefügt habe, fügen e.Handled = true; Dann ruft es die Methode nicht mehr als nötig auf. – ezaspi

0

Bis Sie diagnostizieren, können Sie so etwas wie versuchen:

private bool pointerWorking = false; 
    private void image_1_6_PointerPressed(object sender, Windows.UI.Xaml.Input.PointerRoutedEventArgs e) 
{ 
    if(!pointerWorking){ 
     pointerWorking = true; 
     mySplitView.IsPaneOpen = !mySplitView.IsPaneOpen; 
     pointerWorking = false; 
    } 
} 

können Sie auch ein anderes Ereignis

+0

Ich habe diesen Ansatz versucht, doppelte Aufrufe zu verhindern, wenn die Pen-Eingabe auf einem Bild-Canvas verwendet wird, aber es hat nicht funktioniert. – Oliver9523

Verwandte Themen