In my application we use AvalonDock
for a docking manager, and have a variety of different windows. One of those contains an AvalonEdit
editor. We recently noticed one specific interaction issue which I figured out to be caused by the AvalonDock
.
When trying to block select code, you can use a bunch of different methods: Alt + click and drag
, Alt + Shift + click and drag
, Alt + Shift + arrow keys
, and so on. One specific method, Alt + click and drag doesn't work. Specifically it does select, but typing doesn't work until you press either escape or space once. With Alt + Shift + click and drag
it works fine.
I tested the AvalonEdit
sample project as well as making my own simple example and it worked fine. When I put a test AvalonEdit
window in a Window
control instead of within a UserControl
that's docked in my docking manager, it works fine. So something is going on with the interaction between having the AvalonEdit
window within a AvalonDock
vs. having it within some other window. Has anyone worked with these two controls together before? I know they're both used in SharpDevelop
so I'd expect that they should work well together.
I found another issue which also has an alt-related issue with AvalonDock
but it doesn't seem to be exactly what I'm seeing: AvalonDock Now Loses Alt Key Adornments. Also they claim that issue has been fixed, and I can't even test the solution in the answer as I don't have/use Blend. Looking at that bug makes me think it's more an issue with AvalonDock
though and not AvalonEdit
In the end it turned out that
AvalonDock
wasn't the culprit directly. The real issue was a WPF Ribbon control which was stealing the focus when you pressed Alt. Killing hotkeys on the Ribbon fixed the editor interactions.