代碼使用 `rtxbContent.ClipboardCopy()` (應為 `Copy()`) 後緊接 `_wordRange.Paste()` 報「剪貼板為空」。原因:
// 1. 獲取 RichTextBox RTF 內容
string rtf = rtxbContent.Rtf; // 包含格式
// 或純文字: string text = rtxbContent.Text;
// 2. 使用 Word Range.InsertFile 或 PasteSpecial (需臨時文件)
// 更簡單: 直接插入格式化文字 (需解析 RTF 或用 ContentControl)
// 此處示範: 存為臨時 .rtf 文件, Word 打開插入
string tempRtf = Path.Combine(Path.GetTempPath(), "rtb_content.rtf");
File.WriteAllText(tempRtf, rtf);
Word.Document doc = app.Documents.Add();
doc.Content.InsertFile(tempRtf); // 保留格式插入
// 後續儲存 docx...
File.Delete(tempRtf);
rtxbContent.SelectAll();
rtxbContent.Copy(); // 正確方法
// 關鍵: 等待剪貼板數據就緒
Thread.Sleep(100); // 簡單粗暴
// 或更優雅: 使用 Clipboard.GetDataObject() 輪詢檢查
int retries = 10;
while (retries-- > 0 && Clipboard.GetDataObject()?.GetData(DataFormats.Rtf) == null)
Thread.Sleep(50);
_wordDoc.Activate();
Word.Range range = _wordDoc.Content;
range.Collapse(Word.WdCollapseDirection.wdCollapseEnd);
range.Paste(); // 此時剪貼板已有數據
// 清理
Clipboard.Clear();