UIElement.AddHandler Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Dodaje procedurę obsługi zdarzeń kierowanych dla określonego zdarzenia kierowanego, dodając procedurę obsługi do kolekcji programu obsługi w bieżącym elemencie.
Przeciążenia
AddHandler(RoutedEvent, Delegate) |
Dodaje procedurę obsługi zdarzeń kierowanych dla określonego zdarzenia kierowanego, dodając procedurę obsługi do kolekcji programu obsługi w bieżącym elemencie. |
AddHandler(RoutedEvent, Delegate, Boolean) |
Dodaje procedurę obsługi zdarzeń kierowanych dla określonego zdarzenia kierowanego, dodając procedurę obsługi do kolekcji programu obsługi w bieżącym elemencie. Określ |
AddHandler(RoutedEvent, Delegate)
Dodaje procedurę obsługi zdarzeń kierowanych dla określonego zdarzenia kierowanego, dodając procedurę obsługi do kolekcji programu obsługi w bieżącym elemencie.
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
Identyfikator zdarzenia kierowanego do obsługi.
- handler
- Delegate
Odwołanie do implementacji programu obsługi.
Implementuje
Uwagi
Tę samą procedurę obsługi dla tego samego zdarzenia można dodać wiele razy bez zgłaszania wyjątku. Jednak program obsługi jest wywoływany wielokrotnie, gdy zdarzenie jest obsługiwane. W związku z tym należy wziąć pod uwagę, jak to zachowanie może mieć skutki uboczne, które powinny być uwzględniane w implementacji programu obsługi.
Zazwyczaj używasz tej metody, aby zapewnić implementację metody dostępu "dodaj" dla wzorca dostępu do zdarzeń platformy Microsoft .NET niestandardowego zdarzenia kierowanego.
Dotyczy
AddHandler(RoutedEvent, Delegate, Boolean)
Dodaje procedurę obsługi zdarzeń kierowanych dla określonego zdarzenia kierowanego, dodając procedurę obsługi do kolekcji programu obsługi w bieżącym elemencie. Określ handledEventsToo
, czy true
podana procedura obsługi ma być wywoływana dla zdarzenia kierowanego, które zostało już oznaczone jako obsługiwane przez inny element wzdłuż trasy zdarzeń.
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
Identyfikator zdarzenia kierowanego do obsługi.
- handler
- Delegate
Odwołanie do implementacji programu obsługi.
- handledEventsToo
- Boolean
true
aby zarejestrować procedurę obsługi, tak aby była wywoływana nawet wtedy, gdy zdarzenie kierowane jest oznaczone jako obsługiwane w danych zdarzenia; false
aby zarejestrować program obsługi przy użyciu warunku domyślnego, który nie zostanie wywołany, jeśli zdarzenie trasy jest już oznaczone jako obsługiwane.
Wartość domyślna to false
.
Nie należy rutynowo prosić o ponowną obsługę zdarzenia kierowanego.
Przykłady
Poniższy przykład implementuje procedurę obsługi wywoływaną na zdarzeniu na Initialized stronie, która dołącza zdefiniowaną procedurę obsługi do jednego z nazwanych elementów na stronie przy użyciu polecenia handledEventsToo
true
. Ta procedura obsługi zostanie wywołana nawet wtedy, gdy inny element wzdłuż trasy oznaczył dane zdarzeń udostępnionych jako obsługiwane przed dotarciem do elementu obsługi w trasie.
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
Uwagi
Przetwarzanie zdarzeń wejściowych niskiego poziomu w praktyczny sposób jest złożonym zadaniem. Wiele kontrolek implementuje zachowanie, w którym określone zdarzenie jest oznaczone jako obsługiwane i jest zastępowane innym bardziej intuicyjnym zdarzeniem. Ogólnie rzecz biorąc, kontrolka będzie oznaczać tylko zdarzenie wejściowe platformy jako obsługiwane, jeśli istnieje jakiś zamiar projektowania do tego celu. W niektórych scenariuszach te intencje projektowe mogą nie być tym, czego wymaga twoja konkretna obsługa zdarzenia wejściowego. W tych scenariuszach rejestruje się programy obsługi zgodnie true
z potrzebamihandledEventsToo
. Ale nie należy tego robić rutynowo. Wywoływanie procedur obsługi w odpowiedzi na wszystkie zdarzenia, nawet jeśli obsłużone spowoduje komplikowanie własnej logiki przetwarzania zdarzeń aplikacji. Jeśli logika obsługi jest znacząca, może wystąpić spadek wydajności. Należy zarezerwować użycie dołączania procedur obsługi dla już obsługiwanych zdarzeń w sytuacjach, w których zostały już odnalezione podczas procesu programowania, że niektóre kontrolki obsługują zdarzenia, które nadal mają być obsługiwane za pomocą logiki aplikacji.
Inną techniką unikania zachowania obsługi klas niektórych kombinacji kontroli zdarzeń jest użycie alternatywnej wersji zapoznawczej tego zdarzenia. Jeśli na przykład MouseLeftButtonDown jest oznaczona jako obsługiwana przez obsługę klas, możesz zamiast tego dodać programy PreviewMouseLeftButtonDown obsługi.
Tę samą procedurę obsługi dla tego samego zdarzenia można dodać wiele razy bez zgłaszania wyjątku. Jednak program obsługi jest wywoływany wielokrotnie, gdy zdarzenie jest obsługiwane. W związku z tym należy wziąć pod uwagę, jak to zachowanie może mieć skutki uboczne, które powinny być uwzględniane w implementacji programu obsługi.
Zazwyczaj używasz tej metody, aby zapewnić implementację metody dostępu "dodaj" dla wzorca dostępu do zdarzeń platformy Microsoft .NET niestandardowego zdarzenia kierowanego.
Dotyczy
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla