Как обработать событие «До закрытия» в приложении браузера WPF? - PullRequest
0 голосов
/ 31 августа 2011

Я только начинаю с WPF приложения для браузера.

Я хотел бы обработать событие «До закрытия» браузера, так как бы я обработал это событие?

Ответы [ 2 ]

2 голосов
/ 31 августа 2011

Если я правильно понял ваш вопрос, вы можете:

  • добавить свой BrowserControl tosome Window и обработать событие закрытия Window.
  • или вы можете попробовать варианты события Unloaded (это все объекты FrameworkElement).

Обновление
Извините, только что вернулся .. Пример:

yourControl.Unloaded += (s, e) =>
            {
                // some code here
                e.Handled = true;
            };
1 голос
/ 01 сентября 2011

Я нашел это решение.

В файле App.xaml.cs:

 private void Application_Onexit(object sender, ExitEventArgs e)

        { 

          //write your code in here!

        }

В файле App.xaml:

<Application x:Class="(yourclasss)"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             Startup="Application_Startup"
             Exit="Application_Onexit"
             ShutdownMode="OnLastWindowClose"
             StartupUri="startup.xaml">

Таким образом, в основном свойство ShutdownMode должно быть установлено для того, чтобы оно работало.

Затем добавьте event в app.xaml.cs:

public static event EventHandler UnloadPageWorkaround;

public void Application_Onexit(object sender, ExitEventArgs e)
{
    UnloadPageWorkaround.Invoke(null, null);
}

Затем на соответствующей странице:

    private void Page_Loaded(object sender, RoutedEventArgs e)
    {

        WPFBrowser.App.UnloadPageWorkaround += new EventHandler(DoMySpecialPageCleanupStuff);
    }

    void DoMySpecialPageCleanupStuff(object sender, EventArgs e)
    {
        //do cleanup
    }       

Единственная проблема с этим,Вы не можете остановить выход из приложения.

Надеюсь, это поможет.

...