C# WebBrowser尝试下载本地PDF,而不是显示它
我有一个WPF C#应用程序,在我的一个窗口中,我让一个WebBrowser显示一个本地的PDF文件。但是,当我导航到此区域时,它会尝试下载,而不是显示。有没有我错过的设置,或者我做错了 HelpView.xaml:C# WebBrowser尝试下载本地PDF,而不是显示它,c#,wpf,C#,Wpf,我有一个WPF C#应用程序,在我的一个窗口中,我让一个WebBrowser显示一个本地的PDF文件。但是,当我导航到此区域时,它会尝试下载,而不是显示。有没有我错过的设置,或者我做错了 HelpView.xaml: HelpViewModel.cs: public WebBrowser pdfBrowser; ... public HelpViewModel() : base("Help") { pdfBrowser = new WebBrowser(); pdfBrowse
HelpViewModel.cs:
public WebBrowser pdfBrowser;
...
public HelpViewModel() : base("Help")
{
pdfBrowser = new WebBrowser();
pdfBrowser.Navigate("Path/To/PDF/File.pdf");
}
这里有几种可能性 首先要考虑的是你应该有一个URL,而不仅仅是一个文件路径。换句话说,它应该启动文件:// 下面是一些工作代码:
private void Window_ContentRendered(object sender, EventArgs e)
{
string unencodedurl = "file:///C:/Program Files (x86)/Adobe/Acrobat Reader DC/Reader/Welcome.pdf";
string encodedurl = WebUtility.HtmlEncode(unencodedurl);
wb.Navigate(encodedurl);
}
请注意,这将在渲染窗口后运行,而不仅仅是更新控件。我对字符串进行html编码
顺便说一句
在viewmodel中不应该有UI控件 尝试使用x:name=“pdfBrowser”将ContentPresenter更改为WebBrowser,然后在代码隐藏中执行pdfWebViewer.Navigate(fullPathToPDF);这也会产生同样的问题如果我单击打开文件,它会在Internet Explorer窗口中打开这仍然会尝试下载而不是显示上面的代码会在我的c驱动器上显示pdf文件。只想检查一下,您是如何定义/查找
wb
?这是我视图中的一个控件。Contentrendered意味着它已经被呈现了。我还安装了acrobat reader-我没有随机选择pdf。将字符串作为源属性(而不是导航)也可以工作