c# - WPF Is possible to map Escape key in theme style -
i have searched , got following code working individual forms.
this.keydown += new keyeventhandler(handleesc); private void handleesc(object sender, keyeventargs e) { if (e.key == key.escape) { this.close(); } } the problem have code same on each , every wpf form in app. looking way put in theme style can avoid repeated coding. there way that?
thanks,
i don't think can done using styles. can though, create new layer between window , window class, , have intermediate layer take care of handling escape key. this, first create new class called escapewindow , have inherit window this:
namespace wpfapplication1 { public class escapewindow : window { public escapewindow() : base() { this.keydown += new keyeventhandler(handleesc); } private void handleesc(object sender, keyeventargs e) { if (e.key == key.escape) { this.close(); } } } } now every time create new window, can have inherit escapewindow instead of window. example mainwindow this:
public partial class mainwindow : escapewindow { public mainwindow() { initializecomponent(); } } note since wpf windows partially defined in xaml, need change partial implementation. in case, mainwindow.xaml this:
<local:escapewindow x:class="wpfapplication1.mainwindow" xmlns:local="clr-namespace:wpfapplication1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <grid> </grid> </local:escapewindow> this might not make life easier since need change references every time create window, provides clean framework generically handling escape button.
Comments
Post a Comment