Microsoft Developer Network > Domovská stránka fór > Windows Presentation Foundation (WPF) > What's wrong with the left mouse button in beta2?
Odeslat dotazOdeslat dotaz
 

OdpovědětWhat's wrong with the left mouse button in beta2?

  • 25. května 2006 19:42Konstantin GonikmanModerátorUživatelské medaileUživatelské medaileUživatelské medaileUživatelské medaileUživatelské medaile
     

    That's weird, MouseDown and MouseLeftButtonDown are not working here. Left-clicking on the button, test1 and test2 event handlers are not hit. There's no problem with the right mouse button.

    <Button  MouseDown="test1" MouseLeftButtonDown="test2" MouseRightButtonDown="test3" />

    A bug?.. Can somebody repro this?

Odpovědi

Všechny reakce

  • 25. května 2006 20:16csammis Uživatelské medaileUživatelské medaileUživatelské medaileUživatelské medaileUživatelské medaile
     
    Button elements capture the left mouse down event via the Click event  (or right mouse down, if the system is configured for "right button" clicks), which is probably what's stopping your explicit MouseDown handlers.
  • 25. května 2006 20:20Konstantin GonikmanModerátorUživatelské medaileUživatelské medaileUživatelské medaileUživatelské medaileUživatelské medaile
     
    Click event works as expected. But why should Click event hinder a MouseDown event?
  • 25. května 2006 20:23Konstantin GonikmanModerátorUživatelské medaileUživatelské medaileUživatelské medaileUživatelské medaileUživatelské medaile
     

    Never mind, I've found an explanation on msdn:

     

    Working Around Event Suppression by Controls

    One scenario where preview events are used is for input events and controls. Sometimes, the creator of the control might wish to suppress a certain event from originating from their control, perhaps to substitute a component-defined event that carries more information or implies a more specific behavior. For instance, a Windows Presentation Foundation (formerly code-named "Avalon") Button suppresses normal MouseLeftButtonDown bubbling events in favor of a Click event. If other elements towards the root of your application still wanted an opportunity that event, one alternative is to handle even routed events. But a simpler way is to change the routing direction you handle to be the Preview equivalent PreviewMouseLeftButtonDown.

  • 25. května 2006 20:27LesterLobo - MSFTModerátorUživatelské medaileUživatelské medaileUživatelské medaileUživatelské medaileUživatelské medaile
     Odpovědět
    try the PreviewMouseLeftButtonDown