c# - wpf extending control with keyboard override -
i'm extending control canvas , adding own custom overrides mouseevents. curious know why basic override when user presses key on keyboard doesn't emit signal. how can make override work in wpf c#?
namespace canvasgraphdemo { public class canvasgraph : canvas { public canvasgraph() { } protected override void onkeydown(keyeventargs e) { base.onkeydown(e); if (e.key == key.enter) { console.writeline("context menu open"); e.handled = true; } } } }
this work specific example. others noted, have make canvas focusable , focus it, receive keyboard events.
public class canvasgraph : canvas { public canvasgraph() { focusable = true; loaded += oncanvasgraphloaded; } private void oncanvasgraphloaded(object sender, routedeventargs routedeventargs) { focus(); loaded -= oncanvasgraphloaded; } protected override void onkeydown(keyeventargs e) { base.onkeydown(e); if (e.key == key.enter) { console.writeline("context menu open"); e.handled = true; } } }
Comments
Post a Comment