Condividi tramite


HoldingEventHandler Delegato

Definizione

Rappresenta il metodo che gestirà l'evento Holding .

public delegate void HoldingEventHandler(Platform::Object ^ sender, HoldingRoutedEventArgs ^ e);
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.Guid(3970862285, 36446, 20414, 152, 70, 48, 166, 55, 10, 252, 223)]
class HoldingEventHandler : MulticastDelegate
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.Guid(3970862285, 36446, 20414, 152, 70, 48, 166, 55, 10, 252, 223)]
public delegate void HoldingEventHandler(object sender, HoldingRoutedEventArgs e);
Public Delegate Sub HoldingEventHandler(sender As Object, e As HoldingRoutedEventArgs)

Parametri

sender
Object

Platform::Object

IInspectable

Oggetto a cui è associato il gestore eventi.

e
HoldingRoutedEventArgs

Dati dell'evento per l'evento.

Attributi

Requisiti Windows

Famiglia di dispositivi
Windows 10 (è stato introdotto in 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (è stato introdotto in v1.0)

Esempio

Nell'esempio di codice seguente viene illustrato lo scenario 3 dell'esempio di input. Questo codice mostra alcuni modelli di utilizzo per la manipolazione diretta usando gli eventi Holding, Tapped, DoubleTapped e RightTapped.

<StackPanel>
  <StackPanel Orientation="Horizontal" Margin="0,10,0,0">
    <Button x:Name="scenario3Reset" Content="Reset" Margin="0,0,10,0" 
      Click="Scenario3Reset" />
  </StackPanel>
  <StackPanel Orientation="Horizontal">
    <Border x:Name="bTapped" Background="Red" 
      Height="100" Width="150" CornerRadius="20" Margin="20" 
      BorderBrush="Black" BorderThickness="2">
      <TextBlock Style="{StaticResource BasicTextStyle}" Text="Tap" 
        HorizontalAlignment="Center" VerticalAlignment="Center"/>
    </Border>
    <Border x:Name="bDoubleTapped" Background="Red" 
      Height="100" Width="150" CornerRadius="20" Margin="20" 
      BorderBrush="Black" BorderThickness="2">
      <TextBlock Style="{StaticResource BasicTextStyle}" 
        Text="Double Tap" 
        HorizontalAlignment="Center" VerticalAlignment="Center"/>
    </Border>
    <Border x:Name="bRightTapped" Background="Red" 
      Height="100" Width="150" CornerRadius="20" Margin="20" 
      BorderBrush="Black" BorderThickness="2">
      <TextBlock Style="{StaticResource BasicTextStyle}" 
        Text="Press, Hold and Lift" TextWrapping="Wrap" 
        HorizontalAlignment="Center" VerticalAlignment="Center"/>
    </Border>
    <Border x:Name="bHolding" Background="Red" 
      Height="100" Width="150" CornerRadius="20" Margin="20" 
      BorderBrush="Black" BorderThickness="2">
      <TextBlock Style="{StaticResource BasicTextStyle}" Text="Hold" 
        HorizontalAlignment="Center" VerticalAlignment="Center"/>
    </Border>
  </StackPanel>
</StackPanel>
public Scenario3()
{
    this.InitializeComponent();
    bTapped.Tapped += new TappedEventHandler(bTapped_Tapped);
    bDoubleTapped.DoubleTapped += new DoubleTappedEventHandler(
        bDoubleTapped_DoubleTapped);
    bRightTapped.RightTapped += new RightTappedEventHandler(
        bRightTapped_RightTapped);
    bHolding.Holding += new HoldingEventHandler(bHolding_Holding);
}

private void Scenario3UpdateVisuals(Border border, String gesture)
{
    switch (gesture.ToLower())
    {
        case "holding":
            border.Background = new SolidColorBrush(Colors.Yellow);
            break;
        default:
            border.Background = new SolidColorBrush(Colors.Green);
            break;
    }

    ((TextBlock)border.Child).Text = gesture;
}

private void bHolding_Holding(object sender, HoldingRoutedEventArgs e)
{
    string holdingState = 
        (e.HoldingState == Windows.UI.Input.HoldingState.Started) ? 
        "Holding" : "Held";
    Scenario3UpdateVisuals(sender as Border, holdingState);
}

private void bDoubleTapped_DoubleTapped(object sender, 
    DoubleTappedRoutedEventArgs e)
{
    Scenario3UpdateVisuals(sender as Border, "Double Tapped");
}

private void bRightTapped_RightTapped(object sender, 
    RightTappedRoutedEventArgs e)
{
    Scenario3UpdateVisuals(sender as Border, "Right Tapped");
}

private void bTapped_Tapped(object sender, TappedRoutedEventArgs e)
{
    Scenario3UpdateVisuals(sender as Border, "Tapped");
}

private void Scenario3Reset(object sender, RoutedEventArgs e)
{
    Scenario3Reset();
}

private void Scenario3Reset()
{
    bTapped.Background = new SolidColorBrush(Colors.Red);
    bHolding.Background = new SolidColorBrush(Colors.Red);
    bDoubleTapped.Background = new SolidColorBrush(Colors.Red);
    bRightTapped.Background = new SolidColorBrush(Colors.Red);
}
Public Sub New()
    Me.InitializeComponent()
    AddHandler bTapped.Tapped, AddressOf bTapped_Tapped
    AddHandler bDoubleTapped.DoubleTapped, AddressOf bDoubleTapped_DoubleTapped
    AddHandler bRightTapped.RightTapped, AddressOf bRightTapped_RightTapped
    AddHandler bHolding.Holding, AddressOf bHolding_Holding
End Sub

''' <summary>
''' Invoked when this page is about to be displayed in a Frame.
''' </summary>
''' <param name="e">Event data that describes how this page was reached.  The Parameter
''' property is typically used to configure the page.</param>
Protected Overrides Sub OnNavigatedTo(e As NavigationEventArgs)
End Sub

Private Sub Scenario3UpdateVisuals(border As Border, gesture As String)
    Select Case gesture.ToLower()
        Case "holding"
            border.Background = New SolidColorBrush(Colors.Yellow)
            Exit Select
        Case Else
            border.Background = New SolidColorBrush(Colors.Green)
            Exit Select
    End Select

    DirectCast(border.Child, TextBlock).Text = gesture
End Sub

Private Sub bHolding_Holding(sender As Object, e As HoldingRoutedEventArgs)
    Dim holdingState As String = If((e.HoldingState = Windows.UI.Input.HoldingState.Started), "Holding", "Held")
    Scenario3UpdateVisuals(TryCast(sender, Border), holdingState)
End Sub

Private Sub bDoubleTapped_DoubleTapped(sender As Object, e As DoubleTappedRoutedEventArgs)
    Scenario3UpdateVisuals(TryCast(sender, Border), "Double Tapped")
End Sub
Private Sub bRightTapped_RightTapped(sender As Object, e As RightTappedRoutedEventArgs)
    Scenario3UpdateVisuals(TryCast(sender, Border), "Right Tapped")
End Sub
Private Sub bTapped_Tapped(sender As Object, e As TappedRoutedEventArgs)
    Scenario3UpdateVisuals(TryCast(sender, Border), "Tapped")
End Sub

Private Sub Scenario3ResetMethod(sender As Object, e As RoutedEventArgs)
    Reset()
End Sub

Private Sub Reset()
    bTapped.Background = New SolidColorBrush(Colors.Red)
    bHolding.Background = New SolidColorBrush(Colors.Red)
    bDoubleTapped.Background = New SolidColorBrush(Colors.Red)
End Sub

Si applica a