UIElement.OnPreviewMouseDown(MouseButtonEventArgs) UIElement.OnPreviewMouseDown(MouseButtonEventArgs) UIElement.OnPreviewMouseDown(MouseButtonEventArgs) UIElement.OnPreviewMouseDown(MouseButtonEventArgs) Method

Определение

Вызывается, когда необработанное присоединенное перенаправленное событие PreviewMouseDown встречает на своем маршруте элемент, производный от этого класса.Invoked when an unhandled PreviewMouseDown attached routed event reaches an element in its route that is derived from this class. Реализуйте этот метод, чтобы добавить для класса обработчик данного события.Implement this method to add class handling for this event.

protected:
 virtual void OnPreviewMouseDown(System::Windows::Input::MouseButtonEventArgs ^ e);
protected virtual void OnPreviewMouseDown (System.Windows.Input.MouseButtonEventArgs e);
abstract member OnPreviewMouseDown : System.Windows.Input.MouseButtonEventArgs -> unit
override this.OnPreviewMouseDown : System.Windows.Input.MouseButtonEventArgs -> unit
Protected Overridable Sub OnPreviewMouseDown (e As MouseButtonEventArgs)

Параметры

e
MouseButtonEventArgs MouseButtonEventArgs MouseButtonEventArgs MouseButtonEventArgs

Объект класса MouseButtonEventArgs, содержащий данные о событии.The MouseButtonEventArgs that contains the event data. Данные о событии информируют о нажатии одной или нескольких кнопок мыши.The event data reports that one or more mouse buttons were pressed.

Комментарии

Кнопки мыши также обрабатываются выделенным диспетчером ввода.Mouse button actions are also handled by a dedicated input manager. Другие возможности программирования, которые зависят от действий кнопки мыши, такие как входные данные и привязки команд, могут вызывать обработчики для действия, прежде чем оно будет представлено как общее действие кнопки мыши.Other programming features that rely on mouse button actions, such as input and command bindings, might invoke handlers for the action before it is exposed as a general mouse button action. Если эти входные знак функций системы Mouse.PreviewMouseDown событие как обработанное, OnPreviewMouseDown не вызывается.If these input system features mark the Mouse.PreviewMouseDown event as handled, OnPreviewMouseDown is not invoked.

При использовании данного обработчика класса, чтобы пометить событие как обработанное, потенциально влияет на следующие события: PreviewMouseLeftButtonDown и PreviewMouseRightButtonDown.If you use this class handler to mark the event as handled, you potentially impact the following events: PreviewMouseLeftButtonDown and PreviewMouseRightButtonDown. Одно из этих событий могут возникать на принимающей элемент при Mouse.PreviewMouseDown получении.Either of these events may be raised on the receiving element when Mouse.PreviewMouseDown is received.

Если пометить это событие как обработанное в обработке класса, вложенные события по-прежнему возникают; Тем не менее они передают состояние обработки в данных события.If you mark this event as handled in class handling, subevents are still raised; however, they pass the handled state in the event data. Если событие обрабатывается в обработку класса, обработчиков экземпляров для под, не вызываются, когда вы явно используете AddHandler(RoutedEvent, Delegate, Boolean) с handledEventsToo true для присоединения обработчиков.If the event is handled in class handling, instance handlers for the subevents are not invoked unless you explicitly use AddHandler(RoutedEvent, Delegate, Boolean) with handledEventsToo true in order to attach handlers. Обработчики классов также не вызываются до эти обработчики классов были зарегистрированы с RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) подпись с handledEventsToo true.Class handlers also are not invoked unless those class handlers were registered with the RegisterClassHandler(Type, RoutedEvent, Delegate, Boolean) signature with handledEventsToo true. При обработке OnPreviewMouseDown, подразумевает обработку вашего класса составляли все кнопки мыши возможные действия.By handling OnPreviewMouseDown, you are implying that your class handling accounted for all possible mouse button down actions. Это поведение может быть нежелательным; Таким образом Будьте осторожны при использовании данного виртуального метода для помечать события как обработанные.This behavior might be unwanted; Therefore, use caution when you use this virtual method to mark events as handled.

Каждое из событий прямой кнопками имеется виртуальный * метода. Рассмотрите возможность ли переопределение этих обработчиков класса может быть более подходящим.Each of the button-specific direct events also has a virtual On* method; consider whether overriding these button-specific class handlers might be more appropriate.

Этот метод не имеет значение по умолчанию реализации.This method has no default implementation. Так как промежуточный класс в цепочке наследования может реализовать этот метод, рекомендуется вызывать базовую реализацию в реализации.Because an intermediate class in the inheritance might implement this method, we recommend that you call the base implementation in your implementation.

Этот метод аналогичен среда CLRcommon language runtime (CLR) шаблон событий на * методы: этот метод предоставляет средства для обработки соответствующего события из производных классов с помощью обработчика класса вместо обработчика экземпляра.The purpose of this method is similar to the среда CLRcommon language runtime (CLR) event pattern On* methods: this method provides the means to handle the matching event from derived classes by establishing a class handler instead of an instance handler. В этом случае соответствующее событие является перенаправленное событие.In this case the matching event is a routed event. Шаблон реализации методы On * отличается для перенаправленных событий, так как перенаправленное событие может генерироваться дочерний элемент, который не обязательно является элемент, который будет вызывать обработчики.The implementation pattern of the On* methods is different for routed events because a routed event can be raised by a child element, which is not necessarily the element that will invoke handlers. Таким образом реализации необходимо проверить свойства источника данных события.Therefore, your implementation needs to examine the source properties of the event data. Не пытайтесь повторно инициировать событие в большинстве случаев.It should not try to reraise the event in most cases.

Путем переопределения этого метода или путем регистрации класса обработчиков с RegisterClassHandler, классы, унаследованные от UIElement может вызывать методы обработчика закрытого класса, при получении события на маршруте события.Either by overriding this method or by registering class handlers with RegisterClassHandler, derived classes of UIElement can call private class handler methods when the event is received along the event route. Один сценарий, где обработка класса — управление данными события и пометить перенаправленное событие как обработанное.One scenario where class handling is appropriate is to manipulate the event data and mark the routed event as handled. В случае, если предназначена для события предварительного просмотра является Пометка их обрабатывать, чтобы соответствующие обработчики класса восходящей маршрутизации, не вызываются.Another scenario that is specifically for Preview events is to mark them handled so that the matching bubbling class handlers are not invoked.

Применяется к

Дополнительно