Exemplo n.º 1
0
        private static void AddToQATExecuted(object sender, ExecutedRoutedEventArgs args)
        {
            var    ribbon0 = (MyRibbon)sender;
            object model   = AttachedProperties.GetModel(ribbon0);

            if ((model is PrimaryRibbonModel primary))
            {
                if (!(MyRibbon.FindElementThatCanBeAddedToQAT((DependencyObject)(args.OriginalSource as UIElement)) is UIElement thatCanBeAddedToQat))
                {
                    return;
                }
                RibbonQuickAccessToolBarCloneEventArgs barCloneEventArgs = new RibbonQuickAccessToolBarCloneEventArgs(thatCanBeAddedToQat);
                thatCanBeAddedToQat.RaiseEvent((RoutedEventArgs)barCloneEventArgs);
                MyRibbon ribbon = RibbonControlService.GetRibbon((DependencyObject)thatCanBeAddedToQat) as MyRibbon;
                if (barCloneEventArgs.CloneInstance == null)
                {
                    return;
                }
                primary.QuickAccessToolBar.Items.Add((object)barCloneEventArgs.CloneInstance);
                args.Handled = true;
            }
        }
Exemplo n.º 2
0
        private void OnRibbonQuickAccessToolBarClone(object sender, RibbonQuickAccessToolBarCloneEventArgs e)
        {
            if (!(e.InstanceToBeCloned is RibbonMenuItem menuItem))
            {
                return;
            }

            if (menuItem.Items.Count == 0)
            {
                if (menuItem.IsCheckable)
                {
                    e.CloneInstance = new RibbonToggleButton();
                    e.InstanceToBeCloned.TransferPropertyTo(e.CloneInstance, MenuItem.IsCheckedProperty, ToggleButton.IsCheckedProperty);
                    e.InstanceToBeCloned.TransferPropertyTo(e.CloneInstance,
                                                            System.Windows.Controls.Ribbon.RibbonMenuItem.QuickAccessToolBarImageSourceProperty,
                                                            System.Windows.Controls.Ribbon.RibbonToggleButton.SmallImageSourceProperty);
                    e.InstanceToBeCloned.TransferPropertyTo(e.CloneInstance,
                                                            System.Windows.Controls.Ribbon.RibbonMenuItem.QuickAccessToolBarIdProperty,
                                                            System.Windows.Controls.Ribbon.RibbonToggleButton.QuickAccessToolBarIdProperty);
                }
                else
                {
                    e.CloneInstance = new RibbonButton();
                    e.InstanceToBeCloned.TransferPropertyTo(e.CloneInstance,
                                                            System.Windows.Controls.Ribbon.RibbonMenuItem.QuickAccessToolBarImageSourceProperty,
                                                            System.Windows.Controls.Ribbon.RibbonButton.SmallImageSourceProperty);
                    e.InstanceToBeCloned.TransferPropertyTo(e.CloneInstance,
                                                            System.Windows.Controls.Ribbon.RibbonMenuItem.QuickAccessToolBarIdProperty,
                                                            System.Windows.Controls.Ribbon.RibbonButton.QuickAccessToolBarIdProperty);
                }

                e.InstanceToBeCloned.TransferPropertyTo(e.CloneInstance, MenuItem.CommandProperty, ButtonBase.CommandProperty);
                e.InstanceToBeCloned.TransferPropertyTo(e.CloneInstance, MenuItem.CommandParameterProperty, ButtonBase.CommandParameterProperty);
                e.InstanceToBeCloned.TransferPropertyTo(e.CloneInstance, MenuItem.CommandTargetProperty, ButtonBase.CommandTargetProperty);
            }
            else
            {
                if (menuItem.IsCheckable)
                {
                    e.CloneInstance = new RibbonSplitButton();

                    e.InstanceToBeCloned.TransferPropertyTo(e.CloneInstance,
                                                            MenuItem.CommandProperty,
                                                            System.Windows.Controls.Ribbon.RibbonSplitButton.CommandProperty);
                    e.InstanceToBeCloned.TransferPropertyTo(e.CloneInstance,
                                                            MenuItem.CommandParameterProperty,
                                                            System.Windows.Controls.Ribbon.RibbonSplitButton.CommandParameterProperty);
                    e.InstanceToBeCloned.TransferPropertyTo(e.CloneInstance,
                                                            MenuItem.CommandTargetProperty,
                                                            System.Windows.Controls.Ribbon.RibbonSplitButton.CommandTargetProperty);
                }
                else
                {
                    e.CloneInstance = new RibbonMenuButton();
                }

                e.InstanceToBeCloned.TransferPropertyTo(e.CloneInstance,
                                                        System.Windows.Controls.Ribbon.RibbonMenuItem.QuickAccessToolBarImageSourceProperty,
                                                        SmallImageSourceProperty);
                e.InstanceToBeCloned.TransferPropertyTo(e.CloneInstance,
                                                        System.Windows.Controls.Ribbon.RibbonMenuItem.QuickAccessToolBarIdProperty,
                                                        QuickAccessToolBarIdProperty);

                e.InstanceToBeCloned.TransferPropertyTo(e.CloneInstance, ItemBindingGroupProperty);
                e.InstanceToBeCloned.TransferPropertyTo(e.CloneInstance, ItemContainerStyleProperty);
                e.InstanceToBeCloned.TransferPropertyTo(e.CloneInstance, ItemContainerStyleSelectorProperty);
                e.InstanceToBeCloned.TransferPropertyTo(e.CloneInstance, ItemsPanelProperty);
                e.InstanceToBeCloned.TransferPropertyTo(e.CloneInstance, ItemsSourceProperty);
                e.InstanceToBeCloned.TransferPropertyTo(e.CloneInstance, ItemStringFormatProperty);
                e.InstanceToBeCloned.TransferPropertyTo(e.CloneInstance, ItemTemplateProperty);
                e.InstanceToBeCloned.TransferPropertyTo(e.CloneInstance, ItemTemplateSelectorProperty);
                e.InstanceToBeCloned.TransferPropertyTo(e.CloneInstance, DisplayMemberPathProperty);
                e.InstanceToBeCloned.TransferPropertyTo(e.CloneInstance, AlternationCountProperty);

                e.InstanceToBeCloned.TransferPropertyTo(e.CloneInstance, UsesItemContainerTemplateProperty);
                e.InstanceToBeCloned.TransferPropertyTo(e.CloneInstance, ItemContainerTemplateSelectorProperty);
            }

            if (e.CloneInstance == null)
            {
                return;
            }

            e.InstanceToBeCloned.TransferPropertyTo(e.CloneInstance, DataContextProperty);
            e.InstanceToBeCloned.TransferPropertyTo(e.CloneInstance, BindingGroupProperty);

            e.Handled = true;
        }