Как перерисовать или обновить экран - PullRequest
3 голосов
/ 08 апреля 2010

Я работаю над приложением wpf.Здесь мне нужно использовать System.Windows.Forms.FolderBrowserDialog в моем Wpf-приложении.

        System.Windows.Forms.FolderBrowserDialog openFolderBrowser = new System.Windows.Forms.FolderBrowserDialog();

        openFolderBrowser.Description = "Select Resource Path:";
        openFolderBrowser.RootFolder = Environment.SpecialFolder.MyComputer;
        if (openFolderBrowser.ShowDialog() == System.Windows.Forms.DialogResult.OK)
        {
            //some logic
            openFolderBrowser.Dispose();
        }

Я запускаю FolderBrowserDialog, выбираю папку и нажимаю OK, а затем запускаю другой System.Windows.Forms.FolderBrowserDialog, Моя проблема заключается в том, что когда я выбираю папку и нажимаю OK в этом FolderBrowserDialog, тень FolderBrowserDialog остается на экране (значит, мой экран не обновляется).Мне нужно минимизировать или изменить его размер, чтобы удалить тень FolderBrowserDialog.Как я могу решить эту проблему?Любая помощь, плз?

Редактировать:

Я нашел решение.Я вызвал метод OnRender в моем окне wpf, и он работал для меня.Он перерисовывает все на экране.

Ответы [ 2 ]

3 голосов
/ 08 апреля 2010

Вы можете вызвать InvalidateVisual метод для обновления пользовательского интерфейса.

0 голосов
/ 29 июля 2017

в коде формы

 Update();

обновляет экран и обновляет пользовательский интерфейс.

Мы используем winforms, поэтому Update () - это базовая функция, которая перерисовывает содержимое окна.так что вы можете использовать его прямо из формы.Основное использование может быть таймером, который обновляет метку на экране.когда отметится таймер, вы обновите метку:

System.Windows.Forms.Timer t = new System.Windows.Forms.Timer();
t.Interval = 1000; // specify interval time as you want 
t.Tick += new EventHandler(timer_Tick);
t.Start();

void timer_Tick(object sender, EventArgs e)
{
  label1.text = DateTime.Now.ToString("h:mm:ss")); 
  Update(); //this will refresh the form and label's text is updated.
}

в противном случае label1.text никогда не изменится.

...