Esempio n. 1
0
        protected override void OpenPopup()
        {
            base.OpenPopup();
            if (this.IsModal && currentlyOpenedModal == null)
            {
                currentlyOpenedModal = this;
                this.content.Children.Add(this.ModalCanvas);
            }
            this.content.Children.Add(this.Child);
            var window = this.Child as UIElement;

            if (window != null)
            {
                // this.Move(window.Left, window.Top);
            }
            if (this.adorner == null)
            {
                if (Application.Current.MainWindow.Content == null)
                {
                    Application.Current.MainWindow.Loaded += this.MainWindow_Loaded;
                }
                else
                {
                    this.InitializeAdorner();
                }
            }
            else
            {
                this.content.Visibility = Visibility.Visible;
                this.OnOpened();
            }

            popups.Add(new WeakReference(this));
        }
Esempio n. 2
0
        private void InitializeDropdownPopup()
        {
            if (this.DropDownPopup != null)
            {
                this.DropDownPopup.Opened -= this.DropDownPopupOpened;
                this.DropDownPopup.Closed -= this.DropDownPopupClosed;
                if (this.DropDownPopup.Child != null)
                {
                    this.DropDownPopup.Child.KeyDown -= this.DropDownPopup_KeyDown;
                }
            }
            DependencyObject dependencyObject = GetTemplateChild("DropDownPopup");

            if (this.IsBrowserHosted)
            {
                adornerCanvas = new Canvas()
                {
                    Background = Brushes.Transparent
                };
                adornerCanvas.MouseLeftButtonDown += new MouseButtonEventHandler(OnCanvasMouseLeftButtonDown);
                this.popupAdorner = new ButtonsPopupAdorner();
                Popup popup = dependencyObject as Popup;
                if (popup == null)
                {
                    return;
                }
                this.DropDownPopupChild = popup.Child as FrameworkElement;
                popup.Child             = null;
                popupAdorner.Configure(this.DropDownPopupChild, adornerCanvas, false);
                this.RemovePopupFromVisualTree(popup);
                this.popupAdorner.Opened -= this.DropDownPopupOpened;
            }
            else
            {
                this.DropDownPopup = dependencyObject as Popup;
            }

            if (this.DropDownPopup != null)
            {
                this.DropDownPopup.Opened += this.DropDownPopupOpened;
                this.DropDownPopup.Closed += this.DropDownPopupClosed;
                if (this.DropDownPopup.Child != null)
                {
                    this.DropDownPopup.Child.KeyDown += this.DropDownPopup_KeyDown;
                }

                this.DropDownPopup.PlacementTarget = this.PopupPlacementTarget;
                if (this.IsBrowserHosted)
                {
                    this.adornerPlacementTraget = this.PopupPlacementTarget;
                }
            }
        }
Esempio n. 3
0
        protected override void ClosePopup()
        {
            this.content.Children.Clear();
            this.content.Visibility = Visibility.Visible;

            var thisWR = popups.Where(wr => wr.Target == this).FirstOrDefault();

            if (thisWR != null)
            {
                popups.Remove(thisWR);
            }

            if (this == currentlyOpenedModal)
            {
                currentlyOpenedModal = null;
            }
        }