Как показать и скрыть всплывающее окно? - PullRequest
0 голосов
/ 05 октября 2010
    void Start()
{
System.Windows.Controls.Primitives.Popup p = new System.Windows.Controls.Primitives.Popup();
    p.HorizontalOffset = this.ActualWidth / 2;
    p.Width = 100;
    p.Height = 100;
    p.VerticalOffset = this.ActualHeight / 2;
    DockPanel dock = new DockPanel();
    dock.Children.Add(new Button() { Content = "Обновлено" });
    p.Child = dock;
    p.IsOpen = true;
    Thread t = new Thread(StopPopup);
    t.Start(p);}

функция:

private void StopPopup(object obj)
        {
            try
            {
                System.Windows.Controls.Primitives.Popup p = (System.Windows.Controls.Primitives.Popup)obj;
                this.Dispatcher.Invoke(DispatcherPriority.Normal, (Action)(() =>
                {
                    dataGrid1.DataContext = DataSetCreator.AllItems();
                    Thread.Sleep(1500);
                    p.IsOpen = false;

                }));
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }

но почему этот код срабатывает один раз = ( }

Ответы [ 2 ]

0 голосов
/ 06 октября 2010

В дополнение к тому, что сказал Джон, я бы посоветовал посмотреть на немодальное диалоговое окно. Когда вы вызываете Show () в диалоговом окне, метод сразу возвращается. Это позволяет приложению продолжать ожидание ответа из диалогового окна. Вы также можете прикрепить событие нажатия кнопки, чтобы знать, когда нажимается кнопка.

0 голосов
/ 06 октября 2010

Похоже, вы пытаетесь показать элемент управления из потока, не являющегося пользовательским интерфейсом, и никак не подключаете его к пользовательскому интерфейсу приложения (насколько я вижу здесь).Элементы пользовательского интерфейса WPF должны создаваться и обрабатываться в потоке пользовательского интерфейса и должны быть связаны с некоторым элементом управления на основе окна, чтобы их можно было визуализировать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...