public override void OnApplyTemplate()
        {
            if (_popup != null)
            {
                _popup.Loaded -= PopupOnLoaded;
            }
            if (_toggleButton != null)
            {
                _toggleButton.PreviewMouseLeftButtonUp -= ToggleButtonOnPreviewMouseLeftButtonUp;
            }

            base.OnApplyTemplate();

            _popup = GetTemplateChild(PopupPartName) as PopupEx;
            _popupContentControl = GetTemplateChild(PopupContentControlPartName) as ContentControl;
            _toggleButton        = GetTemplateChild(TogglePartName) as ToggleButton;

            if (_popup != null)
            {
                _popup.Loaded += PopupOnLoaded;
            }
            if (_toggleButton != null)
            {
                _toggleButton.PreviewMouseLeftButtonUp += ToggleButtonOnPreviewMouseLeftButtonUp;
            }

            VisualStateManager.GoToState(this, IsPopupOpen ? PopupIsOpenStateName : PopupIsClosedStateName, false);
        }
Beispiel #2
0
 private void pwdPopup_Loaded(object sender, RoutedEventArgs e)
 {
     if (keyboard == null)
     {
         keyboard         = sender as PopupEx;
         keyboard.Closed += Keyboard_Closed;
     }
 }
Beispiel #3
0
 private void Busy(object sender, RoutedEventArgs e)
 {
     Log("Showing Busy");
     _popup?.Hide();
     _popup = new PopupEx
     {
         Placement             = GetPopupPlacement(),
         CloseButtonVisibility = PopupCloseButtonVisibile.IsChecked.Value ? Visibility.Visible : Visibility.Collapsed,
         AllowBackClose        = PopupCloseButtonBackCloses.IsChecked.Value,
         Template = BusyTemplate,
     };
     _popup.Show(null, () => Log("Hidding Busy"));
 }
Beispiel #4
0
 protected override void OnMouseDown(MouseEventArgs e)
 {
     base.OnMouseDown(e);
     if (this.ImageRect.Contains(e.Location))
     {
         this._mouseState     = EMouseState.MouseDown;
         this.listBox.Visible = true;
         this._popupEx        = new PopupEx(this.listBox);
         this._popupEx.Show(this);
     }
     this._mouseAll = EMouseState.MouseDown;
     base.Invalidate();
 }
Beispiel #5
0
        private static void IsOpenChangedCallback(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            bool           isOpen       = (bool)e.NewValue;
            ContentControl owner        = MaskLayerBehavior.GetOwner(d) as ContentControl;
            PopupEx        layerContent = d as PopupEx;

            if (owner != null)
            {
                if ((bool)e.NewValue)
                {
                    //蒙板
                    Grid layer = new Grid()
                    {
                        Background = new SolidColorBrush(Color.FromArgb(160, 0, 0, 0))
                    };

                    layer.PreviewMouseLeftButtonUp += delegate
                    {
                        MaskLayerBehavior.SetIsOpen(d, false);
                    };

                    //父级窗体原来的内容
                    UIElement original = owner.Content as UIElement;
                    owner.Content = null;

                    //容器Grid
                    Grid container = new Grid();
                    container.Children.Add(original); //放入原来的内容
                    container.Children.Add(layer);    //在上面放一层蒙板,将装有原来内容和蒙板的容器赋给父级窗体
                    owner.Content = container;

                    layerContent.AllowsTransparency = true;
                    layerContent.StaysOpen          = true;
                    layerContent.SetValue(PopopHelper.PopupPlacementTargetProperty, owner);
                    layerContent.PlacementTarget = owner;
                    layerContent.Placement       = PlacementMode.Center;
                    layerContent.IsOpen          = true;
                }
                else
                {
                    //容器Grid
                    Grid grid = owner.Content as Grid;
                    //父级窗体原来的内容
                    UIElement original = VisualTreeHelper.GetChild(grid, 0) as UIElement;
                    //将父级窗体原来的内容在容器Grid中移除
                    grid.Children.Remove(original);
                    //赋给父级窗体
                    owner.Content = original;
                }
            }
        }
Beispiel #6
0
        public static Popup CreatePopup(object content)
        {
            var popup = new PopupEx {
                AllowsTransparency  = false,
                UseLayoutRounding   = true,
                StaysOpen           = false,
                HasSystemDropShadow = true,
                Child = WrapContent(content)
            };

            popup.Opened += OnPopupOpened;
            popup.Closed += OnPopupClosed;
            return(popup);
        }
Beispiel #7
0
        protected override void OnStartup(StartupEventArgs e)
        {
            Thread.CurrentThread.CurrentCulture = Thread.CurrentThread.CurrentUICulture;

            base.OnStartup(e);

            ThemeManager.Install();
            AeroTheme.SetAsCurrentTheme();
            PopupEx.InstallHook();

            var window    = new MainWindow();
            var viewModel = new MainWindowViewModel(window);

            mainWindowViewModel = viewModel;

            window.DataContext = viewModel;
            MainWindow         = window;
            window.Show();

            viewModel.Load().Forget();
        }