Hi,
How can I get my application to do the following:
- RubberBandXyZoomModifier execute on left mouse
- ZoomPanModifier execute on left mouse + ctrl
I tried extending the ZoomPanModifier as such:
public class ZoomPanModifierEx : ZoomPanModifier { public override void OnModifierMouseDown(ModifierMouseArgs e) { IsEnabled = (e.MouseButtons == MouseButtons.Left) && (e.Modifier == MouseModifier.Ctrl); base.OnModifierMouseDown(e); } }
This did not work though.
Thanks in advance.
Johnny
- johnnyp112 asked 11 years ago
- You must login to post comments
Hi Jonny,
Try testing Keyboard.Modifiers instead of e.Modifier to see if the CTRL key is pressed.
Then, try setting ExecuteOn=MouseLeftButton for the RubberBandXyZoomModifier.
Like this:
public class RubberBandXyZoomModifierEx : RubberBandXyZoomModifier { public override void OnModifierMouseDown(ModifierMouseArgs e) { IsXAxisOnly = !e.IsMaster; if (!(Keyboard.Modifiers == ModifierKeys.Control)) { base.OnModifierMouseDown(e); } } } public class ZoomPanModifierEx : ZoomPanModifier { public override void OnModifierMouseDown(ModifierMouseArgs e) { if ((e.MouseButtons == MouseButtons.Left) && (Keyboard.Modifiers == ModifierKeys.Control)) { base.OnModifierMouseDown(e); } } }
Hope this helps!
Andrew
- Andrew Burnett-Thompson answered 11 years ago
-
Thanks your solution worked.
-
Great :) Glad to be of help!
-
Thanks for the link. This works as we expected
- You must login to post comments
Hi,
Hmm… It seems to me you should use “if” here instead:
public class ZoomPanModifierEx : ZoomPanModifier { public override void OnModifierMouseDown(ModifierMouseArgs e) { if(e.MouseButtons == MouseButtons.Left) && (e.Modifier == MouseModifier.Ctrl) { base.OnModifierMouseDown(e); } } }
Best regards,
Yuriy
- Yuriy Zadereckiy answered 11 years ago
- You must login to post comments
Please login first to submit.