Я пытаюсь создать приложение WPF, которое просматривает и изменяет документ .docx. Он изменяет его, заменяя ключевые слова пользовательским вводом.
Ключевые слова: $ keyword1 $ * 14 и $ keyword2 $ * 10, et c.
В то время как мое приложение отображает содержимое документ .docx, включая ключевые слова, я бы хотел, чтобы они (ключевые слова) были покрыты визуализированным текстовым полем в точном положении внутри панели предварительного просмотра. Эти текстовые поля будут действовать как ввод для замены ключевого слова, которое охватывает / наложение. Надеюсь, это достаточно ясно.
У меня следующий вопрос: возможно ли динамически отображать текстовые поля, которые располагаются над ключевым словом? Если да, где я должен посмотреть об этом?
Код ниже предназначен для. Net WinForms и использует Office Interop для предварительного просмотра документа Word в richtextbox. В настоящее время я пытаюсь заставить его работать в WPF. Поскольку Microsoft говорит, что Office Interop работает нестабильно и не поддерживается, я подумываю попробовать Open XML, чтобы получить те же результаты.
Спасибо за прочтение и извинения за глупый вопрос. Я в начале моей карьеры программиста.
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);
}
}
}
}