private static void DefaultButtonChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { var uiElement = d as UIElement; var button = e.NewValue as Button; if (uiElement != null && button != null) { uiElement.KeyUp += (sender, arg) => { // If button is disabled then enter key should do nothing if (!button.IsEnabled) return; var peer = new ButtonAutomationPeer(button); if (arg.Key == Key.Enter) { peer.SetFocus(); uiElement.Dispatcher.BeginInvoke((Action)delegate { var invokeProv = peer.GetPattern(PatternInterface.Invoke) as IInvokeProvider; if (invokeProv != null) invokeProv.Invoke(); }); } }; } }
private static void OnDefaultButtonChanged(object sender, DependencyPropertyChangedEventArgs args) { var uiElement = args.NewValue as UIElement; var button = args.NewValue as Button; if (uiElement != null && button != null) { uiElement.KeyUp += (sender2, arg) => { var peer = new ButtonAutomationPeer(button); if (arg.Key == Key.Enter) { peer.SetFocus(); uiElement.Dispatcher.BeginInvoke((Action)delegate { var invokeProv = peer.GetPattern(PatternInterface.Invoke) as IInvokeProvider; if (invokeProv != null) invokeProv.Invoke(); }); } }; } }
private static void ButtonOnKeyUp(object sender, KeyEventArgs args) { var peer = new ButtonAutomationPeer(sender as Button); if (args.Key == Key.Enter) { peer.SetFocus(); (sender as Button).Dispatcher .BeginInvoke(() => { var invokeProv = peer.GetPattern(PatternInterface.Invoke) as IInvokeProvider; if (invokeProv != null) invokeProv.Invoke(); }); } }