コード例 #1
0
        // Token: 0x060060EC RID: 24812 RVA: 0x001B2F60 File Offset: 0x001B1160
        private static void OnIsCheckedChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            ToggleButton toggleButton = (ToggleButton)d;
            bool?        oldValue     = (bool?)e.OldValue;
            bool?        flag         = (bool?)e.NewValue;
            ToggleButtonAutomationPeer toggleButtonAutomationPeer = UIElementAutomationPeer.FromElement(toggleButton) as ToggleButtonAutomationPeer;

            if (toggleButtonAutomationPeer != null)
            {
                toggleButtonAutomationPeer.RaiseToggleStatePropertyChangedEvent(oldValue, flag);
            }
            if (flag == true)
            {
                toggleButton.OnChecked(new RoutedEventArgs(ToggleButton.CheckedEvent));
            }
            else if (flag == false)
            {
                toggleButton.OnUnchecked(new RoutedEventArgs(ToggleButton.UncheckedEvent));
            }
            else
            {
                toggleButton.OnIndeterminate(new RoutedEventArgs(ToggleButton.IndeterminateEvent));
            }
            toggleButton.UpdateVisualState();
        }
コード例 #2
0
        /// <summary>
        ///     Called when IsChecked is changed on "d."
        /// </summary>
        /// <param name="d">The object on which the property was changed.</param>
        /// <param name="e">EventArgs that contains the old and new values for this property</param>
        private static void OnIsCheckedChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            ToggleButton button   = (ToggleButton)d;
            bool?        oldValue = (bool?)e.OldValue;
            bool?        newValue = (bool?)e.NewValue;

            //doing soft casting here because the peer can be that of RadioButton and it is not derived from
            //ToggleButtonAutomationPeer - specifically to avoid implementing TogglePattern
            ToggleButtonAutomationPeer peer = UIElementAutomationPeer.FromElement(button) as ToggleButtonAutomationPeer;

            if (peer != null)
            {
                peer.RaiseToggleStatePropertyChangedEvent(oldValue, newValue);
            }

            if (newValue == true)
            {
                button.OnChecked(new RoutedEventArgs(CheckedEvent));
            }
            else if (newValue == false)
            {
                button.OnUnchecked(new RoutedEventArgs(UncheckedEvent));
            }
            else
            {
                button.OnIndeterminate(new RoutedEventArgs(IndeterminateEvent));
            }

            button.UpdateVisualState();
        }
コード例 #3
0
ファイル: Breadcrumb2.cs プロジェクト: francisrc/FileExplorer
 public void ToggleTextBoxVisibility(bool visible)
 {
     if (btnToggle.IsChecked == visible && IsBreadcrumbEnabled)
     {
         ToggleButtonAutomationPeer bap = new ToggleButtonAutomationPeer(btnToggle);
         IToggleProvider            iip = bap.GetPattern(PatternInterface.Toggle) as IToggleProvider;
         iip.Toggle();
     }
 }
コード例 #4
0
 private void Page_Unloaded(object sender, RoutedEventArgs e)
 {
     if (isListening)
     {
         var ap = new ToggleButtonAutomationPeer(btnListen);
         var ip = ap.GetPattern(PatternInterface.Invoke) as IInvokeProvider;
         ip?.Invoke();
     }
 }
コード例 #5
0
        private void _push(object o)
        {
            var peer           = new ToggleButtonAutomationPeer(_tb);
            var toggleProvider = peer.GetPattern(PatternInterface.Toggle) as IToggleProvider;

            if (toggleProvider != null)
            {
                toggleProvider.Toggle();
            }
        }
コード例 #6
0
                public void Push()
                {
                    var peer           = new ToggleButtonAutomationPeer(_b);
                    var toggleProvider = peer.GetPattern(PatternInterface.Toggle) as IToggleProvider;

                    if (toggleProvider != null)
                    {
                        toggleProvider.Toggle();
                    }
                }
コード例 #7
0
        void InvokeTarget(FrameworkElement hitTarget)
        {
            if (hitTarget == _offScreenElement)
            {
                FireEyesOff();
                return;
            }

            if (hitTarget.IsEnabled)
            {
                _lastInvokeTickCount = Environment.TickCount;

                var button = hitTarget as Button;
                if (button != null)
                {
                    var peer     = new ButtonAutomationPeer(button);
                    var provider = (IInvokeProvider)peer.GetPattern(PatternInterface.Invoke);
                    Debug.Assert(provider != null);
                    provider.Invoke();
                }
                else
                {
                    var toggleButton = hitTarget as ToggleButton;
                    if (toggleButton != null)
                    {
                        var peer     = new ToggleButtonAutomationPeer(toggleButton);
                        var provider = (IToggleProvider)peer.GetPattern(PatternInterface.Toggle);
                        Debug.Assert(provider != null);
                        provider.Toggle();
                    }
                    else
                    {
                        var textbox = hitTarget as TextBox;
                        if (textbox != null)
                        {
                            textbox.Focus();
                        }
                        else
                        {
                            var tabItem = hitTarget as TabItem;
                            if (tabItem != null)
                            {
                                tabItem.IsSelected = true;
                            }
                        }
                    }
                }

                // Ensure WPF update's the UI with its new state.
                CommandManager.InvalidateRequerySuggested();
            }
        }
コード例 #8
0
        /// <summary>
        /// Activate one of the buttons of a pair, if -/+ is pressed.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void OnKeyDown_ButtonPair(object sender, KeyEventArgs e)
        {
            int clickIndex = -1;

            switch (e.Key)
            {
            case Key.Subtract:
            case Key.OemMinus:
                clickIndex = 0;
                break;

            case Key.Add:
            case Key.OemPlus:
                clickIndex = 1;
                break;
            }

            if (clickIndex > -1)
            {
                if (this.Buttons[clickIndex].Control is ButtonBase button)
                {
                    // // Make it look like it's being clicked.
                    // this.ControlTheme[button].IsMouseDown = true;
                    // this.UpdateTheme(button);

                    // Click it
                    FrameworkElementAutomationPeer automationPeer;
                    if (button is ToggleButton toggle)
                    {
                        automationPeer = new ToggleButtonAutomationPeer(toggle);
                    }
                    else
                    {
                        automationPeer = new ButtonAutomationPeer((Button)button);
                    }
                    ((IInvokeProvider?)automationPeer.GetPattern(PatternInterface.Invoke))?.Invoke();

                    // await Task.Delay(250);
                    // this.ControlTheme[button].IsMouseDown = false;
                    // this.UpdateTheme(button);
                }
            }
        }
コード例 #9
0
        private IToggleProvider GetToggleProvider()
        {
            //TODO:Vladimir: Don't know why FindVisualDescendant doesn't work
            //This is a temporary solution
            var toggleButton = Control.GetChildren().ElementAt(0)
                               .GetChildren().ElementAt(0)
                               .GetChildren().ElementAt(0)
                               .GetChildren().ElementAt(0) as ToggleButton;

            //var toggleButton = Control.FindVisualDescendantWithAutomationId("HeaderSiteToggleButton") as ToggleButton;
            if (toggleButton is null)
            {
                return(null);
            }

            var peer = new ToggleButtonAutomationPeer(toggleButton);

            return(peer.GetPattern(PatternInterface.Toggle) as IToggleProvider);
        }
コード例 #10
0
        void IToggleProvider.Toggle()
        {
            if (!IsEnabled())
            {
                throw new ElementNotEnabledException();
            }

            if (!OwningSplitButton.IsCheckable)
            {
                throw new InvalidOperationException(SR.Get(SRID.UIA_OperationCannotBePerformed));
            }

            if (OwningSplitButton.HeaderButton != null)
            {
                ToggleButtonAutomationPeer headerButtonAutomationPeer = CreatePeerForElement(OwningSplitButton.HeaderButton) as ToggleButtonAutomationPeer;
                if (headerButtonAutomationPeer != null)
                {
                    ((IToggleProvider)headerButtonAutomationPeer).Toggle();
                }
            }
        }
コード例 #11
0
        /// <summary>
        /// OCR language selection change.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void DataSource_PropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            if (e.PropertyName == "SelectedLanguagesText")
            {
                curLangCode = GetLangCodes(dataSource.SelectedLanguagesText);

                // Hide Viet Input Method submenu if selected OCR Language is not Vietnamese
                bool vie = curLangCode.Contains("vie");
                VietKeyHandler.VietModeEnabled = vie;
                this.vietInputMethodToolStripMenuItem.Visibility = vie ? Visibility.Visible : Visibility.Collapsed;

                // Spellcheck
                if (this.buttonSpellcheck.IsChecked.Value)
                {
                    ToggleButtonAutomationPeer peer = new ToggleButtonAutomationPeer(buttonSpellcheck);
                    System.Windows.Automation.Provider.IToggleProvider toggleProvider = peer.GetPattern(PatternInterface.Toggle) as System.Windows.Automation.Provider.IToggleProvider;
                    toggleProvider.Toggle(); // disable spellcheck
                    buttonSpellcheck.RaiseEvent(new RoutedEventArgs(Button.ClickEvent));
                    toggleProvider.Toggle(); // re-enable spellcheck
                    buttonSpellcheck.RaiseEvent(new RoutedEventArgs(Button.ClickEvent));
                }
            }
        }
コード例 #12
0
        /// <summary>
        /// IsCheckedProperty property changed handler.
        /// </summary>
        /// <param name="d">ToggleButton that changed its IsChecked.</param>
        /// <param name="e">DependencyPropertyChangedEventArgs.</param>
        private static void OnIsCheckedPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            ToggleButton source = d as ToggleButton;

            System.Diagnostics.Debug.Assert(source != null,
                                            "The source is not an instance of ToggleButton!");

            System.Diagnostics.Debug.Assert(typeof(bool?).IsInstanceOfType(e.NewValue) || (e.NewValue == null),
                                            "The value is not an instance of bool?!");
            bool?value = (bool?)e.NewValue;

            // Raise the appropriate changed event
            RoutedEventArgs args = new RoutedEventArgs();

            args.OriginalSource = source; // like beta1 (and unit test confirmed)
            if (value == true)
            {
                source.OnChecked(args);
            }
            else if (value == false)
            {
                source.OnUnchecked(args);
            }
            else
            {
                source.OnIndeterminate(args);
            }

            // Raising UIA Automation Event
            ToggleButtonAutomationPeer peer = source.AutomationPeer as ToggleButtonAutomationPeer;

            if (peer != null)
            {
                peer.RaiseToggleStateChanged();
            }
        }
コード例 #13
0
        public ToolBarToggleButton()
        {
            this.DefaultStyleKey = typeof(ToolBarToggleButton);

            this.peer = new ToggleButtonAutomationPeer(this);
        }