C# 是否可以在WPF中动态呈现文本框?

C# 是否可以在WPF中动态呈现文本框?,c#,.net,wpf,textbox,office-interop,C#,.net,Wpf,Textbox,Office Interop,我正在尝试构建一个WPF应用程序,用于预览和修改.docx文档。它通过用用户输入替换关键字来修改它 关键词是$keyword1$*14和$keyword2$*10,等等 当我的应用程序显示.docx文档的内容(包括关键字)时,我希望它们(关键字)被显示在预览窗格中确切位置上的渲染文本框覆盖。这些文本框将充当输入,以替换覆盖/覆盖的关键字。我希望足够清楚 我的问题如下:是否可以动态呈现位于关键字上方的文本框?如果是,我应该在哪里查看此信息? 下面的代码适用于.Net WinForms,并使用Off

我正在尝试构建一个WPF应用程序,用于预览和修改.docx文档。它通过用用户输入替换关键字来修改它

关键词是$keyword1$*14和$keyword2$*10,等等

当我的应用程序显示.docx文档的内容(包括关键字)时,我希望它们(关键字)被显示在预览窗格中确切位置上的渲染文本框覆盖。这些文本框将充当输入,以替换覆盖/覆盖的关键字。我希望足够清楚

我的问题如下:是否可以动态呈现位于关键字上方的文本框?如果是,我应该在哪里查看此信息?


下面的代码适用于.Net WinForms,并使用Office Interop在richtextbox中预览word文档。我目前正在努力使它在WPF中工作。因为微软说Office互操作不稳定且不受支持,所以我正在考虑尝试使用OpenXML来获得同样的结果

感谢您阅读本文,并为这个愚蠢的问题道歉。我正处于我的编码职业生涯的开端

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace wordtoform
{
    public partial class Form1 : Form
    {
        private readonly object fnd;

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
                object filename = @"D:\test.docx";
                Microsoft.Office.Interop.Word.Application AC = new Microsoft.Office.Interop.Word.Application();
                Microsoft.Office.Interop.Word.Document doc = new Microsoft.Office.Interop.Word.Document();
                object readOnly = true;
                object isVisible = true;
                object missing = System.Reflection.Missing.Value;
                try
                {
                    doc = AC.Documents.Open(ref filename, ref missing, ref readOnly, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref isVisible);
                    doc.Content.Select();
                    doc.Content.Copy();
                    richTextBox1.Paste();

                }

                catch (Exception ex)
                {
                    MessageBox.Show("ERROR: " + ex.Message);
                }
                finally
                {
                    doc.Close(ref missing, ref missing, ref missing);
                }
        }       
    }
}

“Microsoft表示Office Interop不稳定且不受支持”你能给我一个这句话的参考吗?为什么有几个变量对象?你可以使用为每个关键字创建一个
TextBox
,直接进入
RichTextBox
FlowDocument
。出于性能原因,可能更方便地创建一个热键,允许编辑用户在关键词。然后选择当前导航的关键字,以便用户可以通过键入来立即替换它们。为每个关键字添加一个
文本框
,根据它们的数量,可能会执行非常糟糕的操作。@Mary“Microsoft目前不建议也不支持从任何无人参与、非交互式客户端应用程序或组件(包括ASP、ASP.NET、DCOM和NT服务)对Microsoft Office应用程序进行自动化操作。”,因为在此环境中运行Office时,Office可能会表现出不稳定的行为和/或死锁。”