ContentElement.AddHandler Metoda

Definice

Přidá obslužnou rutinu směrované události pro zadanou směrovanou událost a přidá obslužnou rutinu do kolekce obslužných rutin v aktuálním elementu.

Přetížení

AddHandler(RoutedEvent, Delegate)

Přidá obslužnou rutinu směrované události pro zadanou směrovanou událost a přidá obslužnou rutinu do kolekce obslužných rutin v aktuálním elementu.

AddHandler(RoutedEvent, Delegate, Boolean)

Přidá obslužnou rutinu směrované události pro zadanou směrovanou událost a přidá obslužnou rutinu do kolekce obslužných rutin v aktuálním elementu. Zadejte handledEventsToo , jestli true má být zadaná obslužná rutina vyvolána pro směrovanou událost, která již byla označena jako zpracována jiným prvkem podél trasy události.

AddHandler(RoutedEvent, Delegate)

Přidá obslužnou rutinu směrované události pro zadanou směrovanou událost a přidá obslužnou rutinu do kolekce obslužných rutin v aktuálním elementu.

public:
 virtual void AddHandler(System::Windows::RoutedEvent ^ routedEvent, Delegate ^ handler);
public void AddHandler (System.Windows.RoutedEvent routedEvent, Delegate handler);
abstract member AddHandler : System.Windows.RoutedEvent * Delegate -> unit
override this.AddHandler : System.Windows.RoutedEvent * Delegate -> unit
Public Sub AddHandler (routedEvent As RoutedEvent, handler As Delegate)

Parametry

routedEvent
RoutedEvent

Identifikátor směrované události, která má být zpracována.

handler
Delegate

Odkaz na implementaci obslužné rutiny.

Implementuje

Poznámky

Stejnou obslužnou rutinu pro stejnou událost můžete přidat vícekrát bez vyvolání výjimky. Obslužná rutina je však ve skutečnosti vyvolána vícekrát, když je událost zpracována. Proto zvažte, jak může mít toto chování vedlejší účinky, které by měly být zohledněny v implementaci obslužné rutiny.

Tuto metodu obvykle používáte k poskytnutí implementace "add" příslušenství pro model přístupu k událostem Microsoft .NET vlastní směrované události.

Platí pro

AddHandler(RoutedEvent, Delegate, Boolean)

Přidá obslužnou rutinu směrované události pro zadanou směrovanou událost a přidá obslužnou rutinu do kolekce obslužných rutin v aktuálním elementu. Zadejte handledEventsToo , jestli true má být zadaná obslužná rutina vyvolána pro směrovanou událost, která již byla označena jako zpracována jiným prvkem podél trasy události.

public:
 void AddHandler(System::Windows::RoutedEvent ^ routedEvent, Delegate ^ handler, bool handledEventsToo);
public void AddHandler (System.Windows.RoutedEvent routedEvent, Delegate handler, bool handledEventsToo);
member this.AddHandler : System.Windows.RoutedEvent * Delegate * bool -> unit
Public Sub AddHandler (routedEvent As RoutedEvent, handler As Delegate, handledEventsToo As Boolean)

Parametry

routedEvent
RoutedEvent

Identifikátor události the.routed, která má být zpracována.

handler
Delegate

Odkaz na implementaci obslužné rutiny.

handledEventsToo
Boolean

true zaregistrovat obslužnou rutinu tak, aby byla vyvolána i v případě, že je směrovaná událost označena jako zpracovávaná v datech události; false k registraci obslužné rutiny s výchozí podmínkou, že nebude vyvolána, pokud je směrovaná událost již označena jako zpracována.

Výchozí formát je false.

Pravidelně nepožadujte o opětovné zpracování směrované události.

Příklady

Následující příklad implementuje obslužnou rutinu vyvolanou u Initialized události na stránce, která připojí definovanou obslužnou rutinu k jednomu z pojmenovaných prvků na stránce pomocí handledEventsTootrue. Tato obslužná rutina by byla vyvolána i v případě, že jiný prvek na trase označil data sdílené události jako zpracovávaná před dosažením elementu zpracování v trase.

void PrimeHandledToo(object sender, EventArgs e)
{
    dpanel2.AddHandler(Button.ClickEvent, new RoutedEventHandler(GetHandledToo), true);
}
Private Sub PrimeHandledToo(ByVal sender As Object, ByVal e As EventArgs)
    dpanel2.AddHandler(Button.ClickEvent, New RoutedEventHandler(AddressOf GetHandledToo), True)
End Sub

Poznámky

Praktické zpracování vstupních událostí nízké úrovně je složitý úkol. Mnoho ovládacích prvků implementuje chování, kdy je určitá událost označena jako zpracována a je nahrazena jinou intuitivnější událostí. Obecně platí, že ovládací prvek označí vstupní událost platformy jako zpracovávanou pouze v případě, že k tomu existuje nějaký záměr návrhu. V některých scénářích nemusí být tyto záměry návrhu to, co vaše konkrétní zpracování vstupní události vyžaduje. Pro tyto scénáře je vhodné zaregistrovat obslužné rutiny handledEventsTootrue . Ale neměli byste to dělat rutinně. Vyvolání obslužných rutin v reakci na všechny události, i když jsou zpracovány, zkomplikuje vlastní logiku zpracování událostí aplikace. Pokud je logika obslužné rutiny podstatná, může dojít ke snížení výkonu. U již zpracovaných událostí byste si měli vyhraďte použití obslužných rutin pro situace, kdy jste během procesu vývoje zjistili, že určité ovládací prvky zpracovávají události, které stále chcete zpracovat pomocí logiky aplikace.

Další technikou, jak se vyhnout chování třídy zpracování určitých kombinací řízení událostí, je použití alternativní verze Preview dané události. Pokud MouseLeftButtonDown je například označeno zpracováním třídy, můžete místo toho přidat obslužné rutiny.PreviewMouseLeftButtonDown

Stejnou obslužnou rutinu pro stejnou událost můžete přidat vícekrát bez vyvolání výjimky. Obslužná rutina je však ve skutečnosti vyvolána vícekrát, když je událost zpracována. Proto zvažte, jak může mít toto chování vedlejší účinky, které by měly být zohledněny v implementaci obslužné rutiny.

Tuto metodu obvykle používáte k poskytnutí implementace "add" příslušenství pro model přístupu k událostem Microsoft .NET vlastní směrované události.

Platí pro