我需要从在 PowerShell 中创建的
RichTextBox
WPF 保存文件
我已经尝试通过
System.Windows.Markup.XamlWriter
进行管道传输,而且我一直在努力解决我删除的大量内容。我似乎无法得到这个。
if ($saveFile) {
$tr = new-object System.Windows.Documents.TextRange($RichEdit.Document.ContentStart,
$RichEdit.Document.ContentEnd)
$ascii = (new-Object System.Text.ASCIIEncoding).getbytes($tr)
# $docStream = new-Object System.IO.MemoryStream($ascii,$false)
$docStream = New-Object IO.FileStream $saveFile ,'Append','Write','Read'
$out = new-object System.Windows.Markup.XamlWriter.Save $tr, $docStream
}
if ($saveFile) {
$RichEdit.SelectAll()
$as = New-Object IO.FileStream $saveFile ,'Create'
$a = $RichEdit.Selection.Save($as,[Windows.DataFormats]::Rtf)
}
可以使用
SaveFile
方法来做到这一点。
$RichTextBox.SaveFile('C:\Path\File.rtf')
它会自动存储字体和颜色。如果需要纯文本输出,可以按如下方式完成:
$RichTextBox.SaveFile('C:\Path\File.rtf', 'PlainText')
$sel = $richtextbox.Selection.Start;
$richtextbox.SelectAll();
$dialog = [Microsoft.Win32.SaveFileDialog]::new();
$dialog.ShowDialog();
$richtextbox.Selection.Save($dialog.OpenFile(),[System.Windows.DataFormats]::Rtf);
$richtextbox.Selection.Select(sel,sell);