Пример #1
0
        private static void OnIsSelectedChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            var item     = d as RadialMenuItem;
            var newValue = (bool)e.NewValue;
            var oldValue = (bool)e.OldValue;

            if (item.IsInternalPropertyChange)
            {
                return;
            }

            if (oldValue == newValue || !RadialMenuModel.CanChangeSelection(item, newValue))
            {
                item.ChangePropertyInternally(RadialMenuItem.IsSelectedProperty, oldValue);
            }

            if (item.Owner != null)
            {
                item.Owner.OnSelectionChanged(item);

                var contentSegment = item.Owner.GetContentSegment(item);
                if (contentSegment != null)
                {
                    var radialMenuItemControl = contentSegment.Visual as RadialMenuItemControl;
                    if (radialMenuItemControl != null)
                    {
                        var peer = FrameworkElementAutomationPeer.CreatePeerForElement(radialMenuItemControl) as RadialMenuItemControlAutomationPeer;
                        if (peer != null)
                        {
                            peer.RaiseToggleStatePropertyChangedEvent((bool)e.OldValue, (bool)e.NewValue);
                        }
                    }
                }
            }
        }
Пример #2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="RadRadialMenu"/> class.
        /// </summary>
        public RadRadialMenu()
        {
            this.DefaultStyleKey = typeof(RadRadialMenu);

            this.model              = new RadialMenuModel(this);
            this.hitTestService     = new HitTestService(this);
            this.visualstateService = new VisualStateService(this);
            this.commandService     = new CommandService(this);
            this.SizeChanged       += this.OnRadRadialMenuSizeChanged;
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="RadRadialMenu"/> class.
        /// </summary>
        public RadRadialMenu()
        {
            this.DefaultStyleKey = typeof(RadRadialMenu);

            this.model              = new RadialMenuModel(this);
            this.hitTestService     = new HitTestService(this);
            this.visualstateService = new VisualStateService(this);
            this.commandService     = new CommandService(this);
            this.SizeChanged       += this.OnRadRadialMenuSizeChanged;

            this.tooltip            = new Popup();
            this.menuToolTipContent = new MenuToolTip();
            this.tooltip.Child      = this.menuToolTipContent;
        }
Пример #4
0
        private static void OnIsSelectedChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            var item     = d as RadialMenuItem;
            var newValue = (bool)e.NewValue;
            var oldValue = (bool)e.OldValue;

            if (item.IsInternalPropertyChange)
            {
                return;
            }

            if (oldValue == newValue || !RadialMenuModel.CanChangeSelection(item, newValue))
            {
                item.ChangePropertyInternally(RadialMenuItem.IsSelectedProperty, oldValue);
            }

            if (item.Owner != null)
            {
                item.Owner.OnSelectionChanged(item);
            }
        }