【问题标题】:load word file (.docx) in richtextbox在富文本框中加载 word 文件 (.docx)
【发布时间】:2015-06-09 03:17:30
【问题描述】:

我已经能够将 .docx 文件加载到我的 wpf 应用程序中,但它似乎没有显示在我的 Richtextbox 中:

if (openFile.ShowDialog() == true)
{
     // Open document 
     string originalfilename = System.IO.Path.GetFullPath(openFile.FileName);

     if (openFile.CheckFileExists)
     {
         var document = DocX.Load(originalfilename);
         string contents = document.Text;
         rtfMain.Document = contents; 

         MessageBox.Show("file loaded");
     }
} 

wpf 中的富文本框不接受内容字符串变量。知道如何使它工作吗?

【问题讨论】:

    标签: c# wpf text ms-word richtextbox


    【解决方案1】:
     if (openFile.ShowDialog() == true)
            {
                // Open document 
                string originalfilename = System.IO.Path.GetFullPath(openFile.FileName);
    
                if (openFile.CheckFileExists && new[] { ".docx", ".doc", ".txt", ".rtf" }.Contains(Path.GetExtension(originalfilename).ToLower()))
                {
                    Microsoft.Office.Interop.Word.Application wordObject = new Microsoft.Office.Interop.Word.Application();
                    object File = originalfilename;
                    object nullobject = System.Reflection.Missing.Value;
                    Microsoft.Office.Interop.Word.Application wordobject = new Microsoft.Office.Interop.Word.Application();
                    wordobject.DisplayAlerts = Microsoft.Office.Interop.Word.WdAlertLevel.wdAlertsNone;
                    Microsoft.Office.Interop.Word._Document docs = wordObject.Documents.Open(ref File, ref nullobject, ref nullobject, ref nullobject, ref nullobject, ref nullobject, ref nullobject, ref nullobject, ref nullobject, ref nullobject, ref nullobject, ref nullobject, ref nullobject, ref nullobject, ref nullobject, ref nullobject);
                    docs.ActiveWindow.Selection.WholeStory();
                    docs.ActiveWindow.Selection.Copy();
                    rtfMain.Document.Paste();
                    docs.Close(ref nullobject, ref nullobject, ref nullobject);
                    wordobject.Quit(ref nullobject, ref nullobject, ref nullobject);
    
    
                    MessageBox.Show("file loaded");
                }
            } 
    

    【讨论】:

    • 在此处添加一些上下文和描述可能会有所帮助。另外,添加代码时请使用代码格式按钮“{}”...
    【解决方案2】:

    该代码不应编译,RichTextBox.Document 的类型为 FlowDocument,而您将其分配给 string

    也许您应该寻找将 .docx 文件转换为 FlowDocument 的方法,您可以将其分配给 RichTextBox

    您可以使用一种流行的工具,称为:Word to XAML

    其他选项是:

    【讨论】:

      猜你喜欢
      • 2021-01-26
      • 1970-01-01
      • 2019-11-13
      • 1970-01-01
      • 1970-01-01
      • 2022-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多