Exemplo n.º 1
0
        private void HandleOnSettingTaskClickedEvent(object sender,Manager.Common.Settings.TaskScheduler taskScheduler)
        {
            RunSettingTaskDetail control = new RunSettingTaskDetail(taskScheduler);
            XamDialogWindow window = new XamDialogWindow();
            window.FontSize = 12;
            window.StartupPosition = StartupPosition.Center;
            window.IsModal = false;
            window.Header = "任务详细";
            window.Width = 455;
            window.Height = 345;
            window.Content = control;
            window.Show();

            this.MainFrame.Children.Add(window);
            window.BringToFront();

            control.OnExited += new RoutedEventHandler(delegate(object sender2, RoutedEventArgs e2)
            {
                window.Close();
            });
        }
Exemplo n.º 2
0
        public void ShowOrUpdateMessage(string message, string title, Action onClose, bool isShowDateTime)
        {
            var currPage = WorkPage.CurrentPage;

            if (currPage == null)
            {
                return;
            }

            if (_messageWindow == null)
            {
                _messageWindow = new XamDialogWindow
                {
                    StartupPosition        = StartupPosition.Center,
                    ModalBackground        = System.Windows.Media.Brushes.LightSteelBlue,
                    ModalBackgroundOpacity = 0.5,
                    Header = title,
                    HeaderIconVisibility = Visibility.Collapsed,
                    IsModal     = true,
                    IsResizable = false,
                };

                SetRowSpan(_messageWindow, 10);
                SetColumnSpan(_messageWindow, 10);

                if (Children != null)
                {
                    Children.Add(_messageWindow);
                }
                _messageWindow.WindowStateChanged += s_WindowStateChanged;
            }

            var messagePanel = _messageWindow.Content as MessagePanel;

            if (messagePanel == null)
            {
                messagePanel           = new MessagePanel(onClose);
                _messageWindow.Content = messagePanel;
            }

            messagePanel.AddOrUpdateMessage(message, isShowDateTime);

            if (_messageWindow.WindowState == WindowState.Hidden)
            {
                _messageWindow.Show();
            }

            _messageWindow.BringToFront();
            _messageWindow.IsActive = true;

            if (_messageWindow.Dispatcher == null)
            {
                return;
            }

            _messageWindow.Dispatcher.BeginInvoke((Action)(() =>
            {
                if (_messageWindow == null)
                {
                    return;
                }

                var mp = _messageWindow.Content as MessagePanel;
                if (mp == null)
                {
                    return;
                }

                var lv = mp.FindName("lvMessages") as ListView;
                if (lv == null)
                {
                    return;
                }


                //Подогнать размер под содержимое
                //lv.UpdateLayout();
                //messagePanel.UpdateLayout();
                //_messageWindow.Height = lv.ActualHeight + 90;
                //_messageWindow.Width = lv.ActualWidth + 30;
                _messageWindow.UpdateLayout();

                _messageWindow.CenterDialogWindow();
            }), DispatcherPriority.Background);
        }
Exemplo n.º 3
0
        public void ShowDialogWin(string message, string caption, double width, double height, double left, double top, bool isManualStartupPosition)
        {
            XamDialogWindow commonDialogWin = new XamDialogWindow()
            {
                Width = width,
                Height = height,
                Header = caption,
                StartupPosition = isManualStartupPosition ? Infragistics.Controls.Interactions.StartupPosition.Manual : Infragistics.Controls.Interactions.StartupPosition.Center,
                Left = left,
                Top = top,
                IsModal = true,
                CloseButtonVisibility = Visibility.Collapsed,
                MinimizeButtonVisibility = Visibility.Collapsed,
                MaximizeButtonVisibility = Visibility.Collapsed,
                Name = "_CommonDialogWin"
            };

            TextBlock msgLabel = new TextBlock() { Foreground = new SolidColorBrush(Colors.Blue), Text = message, Margin = new Thickness(10), VerticalAlignment = VerticalAlignment.Center, HorizontalAlignment = HorizontalAlignment.Center, TextWrapping = TextWrapping.Wrap };
            Button okBtn = new Button() { Content = "OK", Width = 80, Height = 25, VerticalAlignment = VerticalAlignment.Bottom, Margin = new Thickness(5), HorizontalAlignment = HorizontalAlignment.Center, Tag = commonDialogWin, TabIndex = 1 };
            okBtn.Click += new RoutedEventHandler(okBtn_Click);

            StackPanel msgPanel = new StackPanel();
            msgPanel.Margin = new Thickness(5);
            msgPanel.HorizontalAlignment = HorizontalAlignment.Center;
            msgPanel.VerticalAlignment = VerticalAlignment.Center;
            msgPanel.Children.Add(msgLabel);
            ScrollViewer scrollViewer = new ScrollViewer();
            scrollViewer.HorizontalScrollBarVisibility = ScrollBarVisibility.Auto;
            scrollViewer.VerticalScrollBarVisibility = ScrollBarVisibility.Auto;
            scrollViewer.VerticalContentAlignment = VerticalAlignment.Stretch;
            scrollViewer.Content = msgPanel;
            Grid.SetRow(scrollViewer, 0);

            StackPanel btnPanel = new StackPanel();
            btnPanel.Margin = new Thickness(5);
            btnPanel.HorizontalAlignment = HorizontalAlignment.Center;
            btnPanel.VerticalAlignment = VerticalAlignment.Bottom;
            btnPanel.Children.Add(okBtn);
            Grid.SetRow(btnPanel, 1);

            Grid layoutGrid = new Grid();
            layoutGrid.RowDefinitions.Add(new RowDefinition());
            layoutGrid.RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto });
            layoutGrid.Children.Add(scrollViewer);
            layoutGrid.Children.Add(btnPanel);

            commonDialogWin.Content = layoutGrid;
            int columnSpan = this._LayoutContainer.ColumnDefinitions.Count;
            int rowSpan = this._LayoutContainer.RowDefinitions.Count;
            if (columnSpan > 0) Grid.SetColumnSpan(commonDialogWin, columnSpan);
            if (rowSpan > 0) Grid.SetRowSpan(commonDialogWin, rowSpan);

            if (!this._LayoutContainer.Children.Contains(commonDialogWin))
            {
                this._LayoutContainer.Children.Add(commonDialogWin);
            }
            this._CommonDialogWins.Add(commonDialogWin);
            commonDialogWin.Show();
        }
Exemplo n.º 4
0
        public void ShowLocalModal(FrameworkElement content, object title, bool isResizable = true, bool isSpan = false, bool isNotCloseOnEscapeButton = false, bool allowCloseWindow = true)
        {
            var children = content as ILocalChildren;

            System.Windows.Media.Brush modalBackground = null;
            _isNotCloseOnEscapeButton = isNotCloseOnEscapeButton;
            var isTrueModal = false;
            var id          = Guid.Empty;

            if (children != null)
            {
                if (children.Id == Guid.Empty)
                {
                    children.Id = Guid.NewGuid();
                }
                id = children.Id;

                if (children.LocalModalType != EnumLocalModalType.None)
                {
                    //Проверка открыто ли окно с таким содержимым
                    if (children.LocalModalType == EnumLocalModalType.UniqueById)
                    {
                        XamDialogWindow dw;
                        if (DialogWindowsCollection.TryGetValue(id, out dw) && dw != null && dw.WindowState != WindowState.Hidden)
                        {
                            return;
                        }
                        //Изменен тип коллекции, но логика сохранена
                        //if (dw.WindowState == WindowState.Hidden) return false;
                        //if (ch == null) return false;
                        //return ch.LocalModalType == EnumLocalModalType.UniqueById && ch.Id == children.Id;
                    }

                    if (children.LocalModalType == EnumLocalModalType.TrueModal)
                    {
                        modalBackground = System.Windows.Media.Brushes.LightSteelBlue;
                        isTrueModal     = true;
                    }
                }
            }

            if (id == Guid.Empty)
            {
                id = Guid.NewGuid();
            }

            var xamDialogWindow = new XamDialogWindow
            {
                StartupPosition       = StartupPosition.Center,
                ModalBackground       = modalBackground,
                Header                = title,
                IsModal               = true,
                IsResizable           = isResizable,
                Content               = content,
                Tag                   = id,
                CloseButtonVisibility = allowCloseWindow? Visibility.Visible: Visibility.Collapsed
            };

            if (isSpan)
            {
                if (RowDefinitions.Count > 0)
                {
                    SetRowSpan(xamDialogWindow, RowDefinitions.Count);
                }
                if (ColumnDefinitions.Count > 0)
                {
                    SetColumnSpan(xamDialogWindow, ColumnDefinitions.Count);
                }
            }

            Children.Add(xamDialogWindow);

            xamDialogWindow.WindowStateChanged += s_WindowStateChanged;
            if (isTrueModal)
            {
                xamDialogWindow.IsActiveChanged += xamDialogWindow_IsActiveChanged;
            }

            xamDialogWindow.Loaded   += XamDialogWindow_Loaded;
            xamDialogWindow.Unloaded += XamDialogWindow_Unloaded;

            xamDialogWindow.Show();

            if (!DialogWindowsCollection.IsEmpty)
            {
                var prevWindow = DialogWindowsCollection.Values.Last();
                if (prevWindow != null && prevWindow.WindowState != WindowState.Hidden)
                {
                    xamDialogWindow.Margin = new Thickness(prevWindow.Margin.Left + 6, prevWindow.Margin.Top + 12, 0, 0);
                }
            }

            if (isResizable)
            {
                xamDialogWindow.SizeChanged += OnDwSizeChanged;
            }
            else if (DialogWindowsCollection.IsEmpty)
            {
                SizeChanged += OnParentSizeChanged;
            }

            DialogWindowsCollection.TryAdd(id, xamDialogWindow);

            xamDialogWindow.Dispatcher.BeginInvoke((Action)(() => { xamDialogWindow.CenterDialogWindow(); }),
                                                   DispatcherPriority.Background);
        }