Mouse.MouseDown İliştirilmiş Olaylar

Tanım

Herhangi bir fare düğmesi basılı olduğunda gerçekleşir.Occurs when any mouse button is depressed.

see AddMouseDownHandler, and RemoveMouseDownHandler
see AddMouseDownHandler, and RemoveMouseDownHandler
see AddMouseDownHandler, and RemoveMouseDownHandler

Açıklamalar

Hangi fare düğmesinin etkin olduğunu anlamak için, ChangedButton işleyicinin geçirildiği içindeki özelliği kontrol edin MouseButtonEventArgs .To determine which mouse button was depressed, check the ChangedButton property in the MouseButtonEventArgs passed to the handler.

Bu, ekli bir olaydır.This is an attached event. WPFWPF ekli olayları yönlendirilmiş olaylar olarak uygular.implements attached events as routed events. Ekli olaylar temel olarak XAMLXAML , bu olayı tanımlamayan nesneler üzerinde işlenebilecek olaylara başvurmayan ve WPFWPF bir yol çapraz geçiş için olayı etkinleştirerek bir, daha sonra genişleyen olaylar için bir dil kavramıdır.Attached events are fundamentally a XAMLXAML language concept for referencing events that can be handled on objects that do not define that event, which WPFWPF expands upon by also enabling the event to traverse a route. Ekli olaylarda kodda doğrudan işleme sözdizimi yoktur; kodda yönlendirilmiş bir olaya yönelik işleyiciler iliştirmek için, belirlenmiş bir Add * Handler yöntemi kullanın.Attached events do not have a direct handling syntax in code; to attach handlers for a routed event in code, you use a designated Add*Handler method. Ayrıntılar için bkz. ekli olaylara genel bakış.For details, see Attached Events Overview.

Framework, ve ' de Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) iki farklı olay olarak kullanıma sunarak bu ekli olayı oluşturur ortak dil çalışma zamanı (CLR)common language runtime (CLR) UIElement ContentElement : MouseLeftButtonDown ve MouseRightButtonDown .The Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) framework builds on this attached event by surfacing it as two different ortak dil çalışma zamanı (CLR)common language runtime (CLR) events on UIElement and ContentElement: MouseLeftButtonDown and MouseRightButtonDown. Bu uygulamalar, temel MouseDown olayı işler ve sol veya sağ fare düğmesinin dahil edilip edilmeyeceğini anlamak için etkinliğin bağımsız değişkenlerini okur.These implementations handle the underlying MouseDown event and read the arguments of the event to determine whether the left or right mouse button was involved. Üç düğmeli bir fare için, orta düğme için çerçeve düzeyinde bir olay desteği yoktur.For a three-button mouse, there is no framework-level event support for the center button. Olayı kullanmalı MouseDown ve MiddleButton olay bağımsız değişkenlerinde durumu kontrol etmelisiniz.You should use the MouseDown event and check the MiddleButton state in the event arguments.

Önemli

Örneğin, ContentElement denetim benzeri davranışa sahip birkaç türetilmiş sınıf, Hyperlink fare düğmesi olayları için türetilmiş sınıf işlemesine sahip olabilir.A few ContentElement derived classes that have control-like behavior, for example, Hyperlink, might have inherent class handling for mouse button events. Sol fare düğmesi aşağı olay, bir denetimde sınıf işlemeye sahip olmak için en olası olaydır.The left mouse button down event is the most likely event to have class handling in a control. Sınıf işleme genellikle temel alınan Mouse sınıf olayını işlenen olarak işaretler.The class handling often marks the underlying Mouse class event as handled. Olay işlendi olarak işaretlendiğinde, bu öğeye iliştirilen diğer örnek işleyicileri normalde oluşturulmaz.Once the event is marked handled, other instance handlers that are attached to that element are not ordinarily raised. Kullanıcı arabirimi ağacındaki köke doğru köpürme yönündeki öğelere iliştirilen diğer herhangi bir sınıf veya örnek işleyicileri de normalde oluşturulmaz.Any other class or instance handlers that are attached to elements in the bubbling direction towards the root in the UI tree are also not ordinarily raised.

Yukarıdaki önemli notta özetlenen sorunu çözümleyebilir ve MouseDown Şu çözümlerden birini kullanarak sınıf işlemesi olan türetilmiş bir sınıfta sol fare düğmesi aşağı olay almaya devam edebilirsiniz:You can resolve the issue that is outlined in the preceding Important note and still receive MouseDown events for left mouse button down events on a derived class that has class handling by using either of these solutions:

  • Bir PreviewMouseDown olay için, denetimler tarafından işlenmiş olarak işaretlenmemiş işleyicileri ekleyin.Attach handlers for the PreviewMouseDown event, which is not marked as handled by the controls. Bu, bir önizleme olayı olduğu için yolun kökte başlayacağını ve denetime doğru tünellerin olduğunu unutmayın.Notice that because this is a preview event, the route starts at the root and tunnels down to the control.

  • AddHandlerİşleyicilerin, yönlendirilmiş olay verilerinde zaten işlenmiş olarak işaretlenmiş olsalar bile olayları dinlemesine olanak tanıyan imza seçeneğini çağırarak ve seçerek bir işleyiciyi denetim procedurally kaydettirin.Register a handler on the control procedurally by calling AddHandler and choosing the signature option that enables handlers to listen for events even if they are already marked as handled in the routed event data.

Fareyle ilgili yönlendirilmiş olaylar için, nasıl veya ne zaman işlendiğini nasıl işaretleceğiyle ilgili dikkatli olun.For routed events that relate to the mouse, be careful about how or when you mark them handled. Ana öğelerin belirli bir fare eylemi hakkında de bilgilendirilmesi gerekip gerekmediğini öğrenmek için, WPFWPF Framework 'ün temel alınan fare tarafından yönlendirilen etkinliğin CLRCLR yol üzerinde olay olarak ortaya çıkması için bir model seçmesinin gerekli olduğu bir sorun.The difficulty in making the appropriate choices about whether parent elements should also be informed about any given mouse action is in fact why the WPFWPF framework chose the model of having the underlying mouse routed event be surfaced as CLRCLR events along the route. Tünel fare olaylarında benzer sorunlar var.Similar issues exist with tunneling mouse events. Olayı karşılamanız ve kaynağa yönelik daha fazla alt öğe tarafından işlenmemesi gerekir ve birleştirme parçalarının fare davranışlarına beklenen bir denetimi birleştirme seçeneğini nasıl etkiler?Should you handle the event and not have it be handled by further children toward the source, and how would that affect compositing a control where the compositing pieces might have expected mouse behaviors?

Yönlendirilmiş Olay BilgisiRouted Event Information

Tanımlayıcı alanıIdentifier field MouseDownEvent
Yönlendirme stratejisiRouting strategy TırmanmaBubbling
TemsilciDelegate MouseButtonEventHandler

Şunlara uygulanır