C# Documentviewer WPF中的奇怪符号

C# Documentviewer WPF中的奇怪符号,c#,wpf,excel,xps,documentviewer,C#,Wpf,Excel,Xps,Documentviewer,我正在为我的WPF项目添加一个文档查看器,一切看起来都很完美。但是当我尝试打开另一个xps文件时,documentviewer会在我的文档中放置一些[?]符号 这是我的密码: if (xps != null) { xps.Close(); xps = null; } docViewer.Document = null;

我正在为我的WPF项目添加一个文档查看器,一切看起来都很完美。但是当我尝试打开另一个xps文件时,documentviewer会在我的文档中放置一些[?]符号

这是我的密码:

 if (xps != null)
                {
                    xps.Close();
                    xps = null;
                }

                docViewer.Document = null;
                Microsoft.Office.Interop.Excel.Application eApp = new Microsoft.Office.Interop.Excel.Application();
                Microsoft.Office.Interop.Excel.Workbook eWb;
                Microsoft.Office.Interop.Excel.Worksheet eWs;

                eApp.Visible = false;

                eWb = eApp.Workbooks.Open(gekozenProductBestand, false,false, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, true, false, true, Type.Missing, Type.Missing, Type.Missing, Type.Missing);

                eWs = (Microsoft.Office.Interop.Excel.Worksheet)eWb.Worksheets[1];
                eWs.PageSetup.Orientation = Microsoft.Office.Interop.Excel.XlPageOrientation.xlLandscape;
                eWb.ExportAsFixedFormat(XlFixedFormatType.xlTypeXPS, System.IO.Path.GetTempPath() + "producten", XlFixedFormatQuality.xlQualityStandard, true, true, Type.Missing, Type.Missing, false, Type.Missing);

                eApp.DisplayAlerts = false;
                eApp.Quit();
                xps = new XpsDocument(System.IO.Path.GetTempPath() + "producten.xps", System.IO.FileAccess.Read);

                docViewer.Document = xps.GetFixedDocumentSequence();
                docViewer.FitToWidth();


                eApp.DisplayAlerts = false;
                eWs = null;
                eWb = null;
                eApp.Quit();
                eApp = null;

                GC.Collect();
最后是一个让我清楚的形象:

这看起来像是字符编码问题。我认为XPS在默认情况下是Unicode的,所以您应该提供它。此外,还应考虑使用命名参数来简化调用代码。第一次加载文档时,所有内容都正常运行,但第二次加载文件时,它会给出那些[?],因此通常不是unicode。我找到了解决方案:当我尝试重新使用创建的xps文件时,我会得到[?]符号。该文件可能没有在内部发布,因此您必须为要显示的每个文档创建一个新文件。(当然,之后删除旧的)。谢谢你的帮助很高兴你把它整理好了。考虑不使用GC.Collect,尽管它看起来像一个字符编码问题。我认为XPS在默认情况下是Unicode的,所以您应该提供它。此外,还应考虑使用命名参数来简化调用代码。第一次加载文档时,所有内容都正常运行,但第二次加载文件时,它会给出那些[?],因此通常不是unicode。我找到了解决方案:当我尝试重新使用创建的xps文件时,我会得到[?]符号。该文件可能没有在内部发布,因此您必须为要显示的每个文档创建一个新文件。(当然,之后删除旧的)。谢谢你的帮助很高兴你把它整理好了。考虑不使用GC.Collect