Exemple #1
0
        /// <summary>
        /// Opens the contact card popup
        /// Does: Closed -> Non expanded, or Non expanded -> Expanded
        /// </summary>
        /// <returns>true if the contact card has been shown</returns>
        private bool OpenContactCardPopup()
        {
            if (this.CanShowContactCard)
            {
                this.CloseSearchPopup();
                if (!this.PresenceIndicator.ContactPopupCard.IsOpen)
                {
                    var hoverOnTarget = this.PresenceIndicator.ContactPopupCard.HoverOnTarget;
                    if (hoverOnTarget != null)
                    {
                        FrameworkTools.InvokeEventHandlers(
                            hoverOnTarget,
                            Mouse.MouseMoveEvent,
                            new MouseEventArgs(Mouse.PrimaryDevice, 0));
                    }
                }
                else
                {
                    var clickTarget = this.PresenceIndicator.ContactPopupCard.SingleClickActionTarget;
                    if (clickTarget != null)
                    {
                        FrameworkTools.InvokeEventHandlers(clickTarget, ButtonBase.ClickEvent);
                    }
                }

                return(true);
            }

            return(false);
        }
Exemple #2
0
        /// <summary>
        /// Closes the contact card popup
        /// Does: Expanded -> Non expanded, or Non expanded -> closed
        /// </summary>
        /// <param name="closeAll">
        /// If tru alwys closes completely
        /// </param>
        private void CloseContactCardPopup(bool closeAll = false)
        {
            var popup = this.PresenceIndicator.ContactPopupCard;

            if ((popup == null) || !popup.IsOpen || popup.IsPinned)
            {
                return;
            }

            // issue force close event by faking a sign off event
            popup.ForEachVisualChild(delegate(DependencyObject visualChild)
            {
                var button = visualChild as SplitButton;
                if (button != null)
                {
                    button.IsMenuOpen = false;
                }
            });

            if (closeAll || !popup.IsExpanded)
            {
                var hoverOffTarget = this.PresenceIndicator.ContactPopupCard.HoverOffTarget;
                if (hoverOffTarget != null)
                {
                    FrameworkTools.InvokeEventHandlers(
                        hoverOffTarget,
                        Mouse.MouseLeaveEvent,
                        new MouseEventArgs(Mouse.PrimaryDevice, 0));
                }
            }

            popup.SelectedTabIndex = 0;
            popup.IsExpanded       = false;
            popup.IsFloating       = false;
            popup.IsPinned         = false;
            popup.UpdateLayout();
        }