UIElement.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 pro aktuální prvek.

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 pro aktuální prvek.

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 pro aktuální prvek. Zadejte handledEventsToo jako true , aby byla zadaná obslužná rutina vyvolána pro směrovanou událost, která již byla označena jako zpracována jiným prvkem na trase 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 pro aktuální prvek.

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 objektu "add" 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 pro aktuální prvek. Zadejte handledEventsToo jako true , aby byla zadaná obslužná rutina vyvolána pro směrovanou událost, která již byla označena jako zpracována jiným prvkem na trase 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 směrované události, 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ána v datech události; false zaregistrovat obslužnou rutinu 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ě nežádejte 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 zpracovaný 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 záměr návrhu. V určitých scénářích nemusí tyto záměry návrhu představovat to, co vyžaduje vaše konkrétní zpracování vstupní události. 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. Připojení obslužných rutin byste si měli vyhrabit pro již zpracovávané události v situacích, kdy jste již během procesu vývoje zjistili, že určité ovládací prvky zpracovávají události, které stále chcete zpracovat logikou aplikace.

Další technikou, jak se vyhnout chování třídy při určitých kombinacích řízení událostí, je použít alternativu pro danou událost ve verzi Preview. Pokud MouseLeftButtonDown je například označený jako zpracování třídy, můžete místo toho přidat obslužné rutiny pro 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 objektu "add" pro model přístupu k událostem Microsoft .NET vlastní směrované události.

Platí pro