2
我在我的WPF應用程序中使用WebBrowser。我用它來查看pdf文件。但是在查看了50個文件後,該應用程序會拋出異常。所以我們決定在打開下一個pdf之前處理webbrowser。 事情是我不知道該怎麼做。當我處理web瀏覽器時,它是未綁定的,並且不再查看pdf。它使得感知,但如何正確地做到這一點? 這裏是我的代碼:WPF MVVM WebBrowser配置
public static void BindableSourcePropertyChanged(DependencyObject o, DependencyPropertyChangedEventArgs e)
{
WebBrowser browser = o as WebBrowser;
if (browser != null)
{
try
{
browser.Dispose();
browser = null;
browser = new WebBrowser();
}
catch
{
}
string uri = e.NewValue as string;
try
{
if (uri != null)
{
browser.Navigate(new Uri(uri, UriKind.Absolute));
}
}
catch (Exception exception)
{
ExceptionPolicy.HandleException(exception, ExceptionPolicies.General);
}
}
}
和XAML部分:
<WebBrowser Grid.Row="0" Behaviour:WebBrowserBehaviour.BindableSource="{Binding WebBrowserData}"
LoadCompleted="WebBrowser_LoadCompleted" />
嘗試將Source屬性設置爲null,如下所示:http://stackoverflow.com/questions/9162240/webbrowser-is-not-disposing-itself – mm8
謝謝,但這不是正確的解決方案。它不釋放資源 – Brusinka
在此處檢查DisposeWebBrowser()方法,然後:https://social.msdn.microsoft.com/Forums/vstudio/en-US/368755dd-0047-4a88-9951-ba0539266410/wpf-webbrowser-是不是妥善處理?forum = wpf – mm8