public void GetKeyDown(object sender, KeyEventArgs e) { if (mclass.isEnabledAllKeys) { if ((e.Key >= Key.D0 && e.Key <= Key.Z) || (e.Key >= Key.Oem1 && e.Key <= Key.OemBackslash) || e.Key == Key.Space) { mclass.CurrentKeyArg = e; } var mybutton = (Button)this.FindName(e.Key.ToString()); if (mybutton != null && e.Key != Key.Capital) { typeof(Button).GetMethod("set_IsPressed", BindingFlags.Instance | BindingFlags.NonPublic).Invoke(mybutton, new object[] { true }); } else if (e.Key == Key.Capital) { Capital.RaiseEvent(new RoutedEventArgs(Button.ClickEvent)); //CapsLock Push Pull event } else if (e.Key == Key.System) //this is for Alt buttons because they are same code { typeof(Button).GetMethod("set_IsPressed", BindingFlags.Instance | BindingFlags.NonPublic).Invoke(SystemL, new object[] { true }); typeof(Button).GetMethod("set_IsPressed", BindingFlags.Instance | BindingFlags.NonPublic).Invoke(SystemR, new object[] { true }); } } e.Handled = true; }