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();
                        });
                    }
                };
            }
        }
Exemple #3
0
        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();
                                 });
            }
        }