Esporta (0) Stampa
Espandi tutto
Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale

Classe RoutedEventArgs

Contiene informazioni sullo stato e i dati degli eventi associati a un oggetto evento indirizzato.

System.Object
  System.EventArgs
    System.Windows.RoutedEventArgs
      Ulteriori informazioni

Spazio dei nomi:  System.Windows
Assembly:  PresentationCore (in PresentationCore.dll)

public class RoutedEventArgs : EventArgs

Il tipo RoutedEventArgs espone i seguenti membri.

  NomeDescrizione
Metodo pubblicoRoutedEventArgs()Inizializza una nuova istanza di RoutedEventArgs classe.
Metodo pubblicoRoutedEventArgs(RoutedEvent) Inizializza una nuova istanza di RoutedEventArgs classe, con l'identificatore fornito di eventi indirizzati.
Metodo pubblicoRoutedEventArgs(RoutedEvent, Object)Inizializza una nuova istanza di RoutedEventArgs classificare, utilizzando l'identificatore fornito di eventi indirizzati e di fornire la possibilità di dichiarare una fonte differente per l'evento.
In alto

  NomeDescrizione
Proprietà pubblicaHandledOttiene o imposta un valore che indica lo stato corrente della gestione degli eventi per un oggetto evento indirizzato come si sposta tra le route.
Proprietà pubblicaOriginalSourceOttiene il database di origine originale di rapporti come determinato da pure hit testing, prima di qualsiasi possibile Source regolazione da una classe padre.
Proprietà pubblicaRoutedEventottiene o imposta RoutedEvent associato a l RoutedEventArgs istanza.
Proprietà pubblicaSourceOttiene o imposta un riferimento all'oggetto che ha generato l'evento.
In alto

  NomeDescrizione
Metodo pubblicoEquals(Object) Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object)
Metodo protettoFinalize Consente a un oggetto di provare a liberare risorse ed eseguire altre operazioni di pulizia prima che l'oggetto stesso venga reclamato dalla procedura di Garbage Collection. (Ereditato da Object)
Metodo pubblicoGetHashCode Funge da funzione hash per un particolare tipo. (Ereditato da Object)
Metodo pubblicoGetType Ottiene il Type dell'istanza corrente. (Ereditato da Object)
Metodo protettoInvokeEventHandlerUna volta sottoposto a override in una classe derivata, fornisce un modo per richiamare i gestori eventi in modo tipo-specifica, che possono migliorare l'efficienza sull'implementazione di base.
Metodo protettoMemberwiseClone Crea una copia dei riferimenti dell'oggetto Object corrente. (Ereditato da Object)
Metodo protettoOnSetSourceUna volta sottoposto a override in una classe derivata, fornisce una notifica punto di ingresso di callback ogni volta che il valore di Source proprietà di un'istanza.
Metodo pubblicoToString Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object)
In alto

Diverso RoutedEventArgs può essere utilizzato con un singolo RoutedEvent. Questa classe è responsabile di comprimere i dati per un oggetto RoutedEvent, fornendo le informazioni sullo stato aggiuntive di evento e viene utilizzato dal sistema di eventi per richiamare il gestore associato evento indirizzato.

Affinché l'evento personalizzato supporti il routing degli eventi, è necessario registrare un oggetto RoutedEvent utilizzando il metodo RegisterRoutedEvent. In questo esempio vengono illustrate le nozioni di base per la creazione di un evento indirizzato personalizzato.

Come mostrato nell'esempio seguente, è necessario innanzi tutto registrare un oggetto RoutedEvent utilizzando il metodo RegisterRoutedEvent. Per convenzione, il nome del campo statico RoutedEvent deve terminare con il suffisso Event In questo esempio, il nome dell'evento è Tap e la strategia di routing dell'evento è Bubble. Dopo la chiamata di registrazione, è possibile fornire funzioni di accesso di aggiunta e rimozione dell'evento Common Language Runtime (CLR) per l'evento.

Si noti che anche se l'evento viene generato tramite il metodo virtuale OnTap in questo particolare esempio, la modalità di generazione dell'evento o la relativa risposta alle modifiche varierà in base alle esigenze.

In questo esempio inoltre viene implementata un'intera sottoclasse di Button; tale sottoclasse è compilata come assembly separato e ne viene quindi creata un'istanza come classe personalizzata in una pagina Extensible Application Markup Language (XAML) separata. Ciò vale a dimostrare che i controlli sottoclassati possono essere inseriti in strutture ad albero composte di altri controlli e che, in una situazione del genere, gli eventi personalizzati su questi controlli dispongono delle stesse funzionalità di routing di qualsiasi elemento Windows Presentation Foundation (WPF) nativo.


Public Class MyButtonSimple
    Inherits Button

    ' Create a custom routed event by first registering a RoutedEventID
    ' This event uses the bubbling routing strategy
    Public Shared ReadOnly TapEvent As RoutedEvent = EventManager.RegisterRoutedEvent("Tap", RoutingStrategy.Bubble, GetType(RoutedEventHandler), GetType(MyButtonSimple))

    ' Provide CLR accessors for the event
    Public Custom Event Tap As RoutedEventHandler
        AddHandler(ByVal value As RoutedEventHandler)
            Me.AddHandler(TapEvent, value)
        End AddHandler

        RemoveHandler(ByVal value As RoutedEventHandler)
            Me.RemoveHandler(TapEvent, value)
        End RemoveHandler

        RaiseEvent(ByVal sender As Object, ByVal e As RoutedEventArgs)
            Me.RaiseEvent(e)
        End RaiseEvent
    End Event

    ' This method raises the Tap event
    Private Sub RaiseTapEvent()
        Dim newEventArgs As New RoutedEventArgs(MyButtonSimple.TapEvent)
        MyBase.RaiseEvent(newEventArgs)
    End Sub

    ' For demonstration purposes we raise the event when the MyButtonSimple is clicked
    Protected Overrides Sub OnClick()
        Me.RaiseTapEvent()
    End Sub

End Class



public class MyButtonSimple: Button
{
    // Create a custom routed event by first registering a RoutedEventID
    // This event uses the bubbling routing strategy
    public static readonly RoutedEvent TapEvent = EventManager.RegisterRoutedEvent(
        "Tap", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(MyButtonSimple));

    // Provide CLR accessors for the event
    public event RoutedEventHandler Tap
    {
            add { AddHandler(TapEvent, value); } 
            remove { RemoveHandler(TapEvent, value); }
    }

    // This method raises the Tap event
    void RaiseTapEvent()
    {
            RoutedEventArgs newEventArgs = new RoutedEventArgs(MyButtonSimple.TapEvent);
            RaiseEvent(newEventArgs);
    }
    // For demonstration purposes we raise the event when the MyButtonSimple is clicked
    protected override void OnClick()
    {
        RaiseTapEvent();
    }

}



<Window  
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:custom="clr-namespace:SDKSample;assembly=SDKSampleLibrary"
    x:Class="SDKSample.RoutedEventCustomApp"

    >
    <Window.Resources>
      <Style TargetType="{x:Type custom:MyButtonSimple}">
        <Setter Property="Height" Value="20"/>
        <Setter Property="Width" Value="250"/>
        <Setter Property="HorizontalAlignment" Value="Left"/>
        <Setter Property="Background" Value="#808080"/>
      </Style>
    </Window.Resources>
    <StackPanel Background="LightGray">
	    <custom:MyButtonSimple Name="mybtnsimple" Tap="TapHandler">Click to see Tap custom event work</custom:MyButtonSimple>
    </StackPanel>
</Window>


Gli eventi di tunneling sono creati con la stessa modalità, ma impostando la proprietà RoutingStrategy su Tunnel nella chiamata di registrazione. Per convenzione, gli eventi di tunneling in WPF vengono denominati con il prefisso "Preview".

Per un esempio di funzionamento degli eventi di bubbling, vedere Procedura: gestire un evento indirizzato.

.NET Framework

Supportato in: 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

Qualsiasi membro pubblico static (Shared in Visual Basic) di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.

System.Object
  System.EventArgs
    System.Windows.RoutedEventArgs
      System.Activities.Presentation.Toolbox.ToolCreatedEventArgs
      System.Windows.Controls.ActivatingKeyTipEventArgs
      System.Windows.Controls.CalendarDateChangedEventArgs
      System.Windows.Controls.CalendarModeChangedEventArgs
      System.Windows.Controls.CleanUpVirtualizedItemEventArgs
      System.Windows.Controls.ContextMenuEventArgs
      System.Windows.Controls.InkCanvasGestureEventArgs
      System.Windows.Controls.InkCanvasStrokeCollectedEventArgs
      System.Windows.Controls.KeyTipAccessedEventArgs
      System.Windows.Controls.Primitives.DragCompletedEventArgs
      System.Windows.Controls.Primitives.DragDeltaEventArgs
      System.Windows.Controls.Primitives.DragStartedEventArgs
      System.Windows.Controls.Primitives.ScrollEventArgs
      System.Windows.Controls.Ribbon.RibbonDismissPopupEventArgs
      System.Windows.Controls.Ribbon.RibbonQuickAccessToolBarCloneEventArgs
      System.Windows.Controls.ScrollChangedEventArgs
      System.Windows.Controls.SelectionChangedEventArgs
      System.Windows.Controls.TextChangedEventArgs
      System.Windows.Controls.ToolTipEventArgs
      System.Windows.Controls.ValidationErrorEventArgs
      System.Windows.Data.DataTransferEventArgs
      System.Windows.DataObjectEventArgs
      System.Windows.DragEventArgs
      System.Windows.ExceptionRoutedEventArgs
      System.Windows.GiveFeedbackEventArgs
      System.Windows.Input.AccessKeyPressedEventArgs
      System.Windows.Input.CanExecuteRoutedEventArgs
      System.Windows.Input.ExecutedRoutedEventArgs
      System.Windows.Input.InputEventArgs
      System.Windows.MediaScriptCommandRoutedEventArgs
      System.Windows.Navigation.RequestNavigateEventArgs
      System.Windows.QueryContinueDragEventArgs
      System.Windows.RequestBringIntoViewEventArgs
      System.Windows.RoutedPropertyChangedEventArgs<T>
      System.Windows.SizeChangedEventArgs
      System.Windows.SourceChangedEventArgs

Aggiunte alla community

AGGIUNGI
Mostra:
© 2014 Microsoft