Esempio n. 1
0
        /// <summary>
        /// Determines whether the given control can provide a quick access toolbar item
        /// </summary>
        /// <param name="element">Control</param>
        /// <returns>True if this control is able to provide
        /// a quick access toolbar item, false otherwise</returns>
        public static bool IsSupported(UIElement element)
        {
            IQuickAccessItemProvider provider = (element as IQuickAccessItemProvider);

            if ((provider != null) && (provider.CanAddToQuickAccessToolBar))
            {
                return(true);
            }
            return(false);
        }
Esempio n. 2
0
        private static object CoerceContextMenu(DependencyObject d, object basevalue)
        {
            IQuickAccessItemProvider control = d as IQuickAccessItemProvider;

            if ((basevalue == null) && ((control == null) || control.CanAddToQuickAccessToolBar))
            {
                return(Ribbon.RibbonContextMenu);
            }
            return(basevalue);
        }
Esempio n. 3
0
        private IQuickAccessItemProvider FindParentProvider()
        {
            DependencyObject parent = LogicalTreeHelper.GetParent(this);

            while (parent != null)
            {
                IQuickAccessItemProvider provider = (parent as IQuickAccessItemProvider);
                if (provider != null)
                {
                    return(provider);
                }
                parent = LogicalTreeHelper.GetParent(parent);
            }
            return(null);
        }
Esempio n. 4
0
        /// <summary>
        /// Gets control which represents shortcut item.
        /// This item MUST be syncronized with the original
        /// and send command to original one control.
        /// </summary>
        /// <returns>Control which represents shortcut item</returns>
        public override FrameworkElement CreateQuickAccessItem()
        {
            IQuickAccessItemProvider provider = FindParentProvider();

            if (provider != null)
            {
                return(provider.CreateQuickAccessItem());
            }

            DropDownButton button = new DropDownButton();

            button.PreviewMouseLeftButtonDown += OnFirstPreviewClick;

            BindQuickAccessItem(button);
            return(button);
        }
Esempio n. 5
0
        public static FrameworkElement GetQuickAccessItem(UIElement element)
        {
            FrameworkElement result = null;

            // If control supports the interface just return what it provides
            IQuickAccessItemProvider provider = (element as IQuickAccessItemProvider);

            if ((provider != null) && (provider.CanAddToQuickAccessToolBar))
            {
                result = ((IQuickAccessItemProvider)element).CreateQuickAccessItem();
            }

            // The control isn't supported
            if (result == null)
            {
                throw new ArgumentException("The contol " + element.GetType().Name + " is not able to provide a quick access toolbar item");
            }

            return(result);
        }