Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# wpf在AdobeReader中单击按钮打开PDF文件_C#_Wpf_Xaml_Ado.net - Fatal编程技术网

C# wpf在AdobeReader中单击按钮打开PDF文件

C# wpf在AdobeReader中单击按钮打开PDF文件,c#,wpf,xaml,ado.net,C#,Wpf,Xaml,Ado.net,我需要一个按钮打开一个PDF文件与Adobe Reader。我有以下代码,但它不工作。该文件位于我的应用程序的Books文件夹中 private void openPDF(object sender, RoutedEventArgs e) { try { System.Diagnostics.Process process = new System.Diagnostics.Process(); bookPDF = "/Books/" + dataR

我需要一个按钮打开一个PDF文件与Adobe Reader。我有以下代码,但它不工作。该文件位于我的应用程序的Books文件夹中

private void openPDF(object sender, RoutedEventArgs e)
{
    try
    {
        System.Diagnostics.Process process = new System.Diagnostics.Process();
        bookPDF = "/Books/" + dataRow.ItemArray[6].ToString();
        Uri pdf = new Uri(bookPDF, UriKind.Relative);
        process.StartInfo.FileName = new Uri(bookPDF, UriKind.Relative).ToString();
        process.Start();
        process.WaitForExit();
    }
    catch
    {
        MessageBox.Show("Could not open the file.", "Error", MessageBoxButton.OK, MessageBoxImage.Warning);
    }
}
我用一个要打开的测试pdf文件测试了一个简单的字符串,它打开了

...
String file = "C:\\pdf\\Windows_Server_2008_R2_Unleashed.pdf";
process.StartInfo.FileName = file;
process.Start();
process.WaitForExit();
更改您的第六行:

bookPDF = "/Books/" + dataRow.ItemArray[6].ToString();
致:

Microsoft Windows命名约定在路径中使用反斜杠作为分隔符
您可以将第六行更改为:

bookPDF = string.Format(@"books\{0}", dataRow.ItemArray[6].ToString());         

如果您的应用程序目录中有指定pdf格式的books文件夹,那么这应该可以工作

如果您在资源管理器中双击,该文件是否在读卡器中打开?我还注意到,您对书籍使用的是正斜杠而不是反斜杠。dataRowdataRow.ItemArray[6]中有什么内容。ToString的文件名类似于123.Pdf,您是否忘记在Pdf文件上设置“复制到输出目录”?如果使用路径Books\123.pdf,则Books文件夹应与构建的exe.Claudio P位于同一目录中,就是这样!非常感谢。我在应用程序目录中有一本书,但它仍然不起作用。为了清楚起见,我可以在资源管理器中打开该文件。
bookPDF = string.Format(@"books\{0}", dataRow.ItemArray[6].ToString());