用c# Windows Store应用程序从richditbox写入文本到文件时遇到麻烦
本文关键字:文本 文件 麻烦 遇到 Windows Store 应用程序 richditbox | 更新日期: 2023-09-27 18:03:54
我是一个用c#和XAML开发Windows 8的初学者。我试图使一个基本的文本编辑器,但我有困难使保存功能的工作。我的代码是:
private async void SaveAs_Click(object sender, RoutedEventArgs e)
{
FileSavePicker savePicker = new FileSavePicker();
savePicker.SuggestedStartLocation = PickerLocationId.DocumentsLibrary;
savePicker.FileTypeChoices.Add("Plain Text", new List<string>() { ".txt" });
savePicker.FileTypeChoices.Add("Markdown", new List<string>() { ".md" });
savePicker.SuggestedFileName = "New Document";
StorageFile file = await savePicker.PickSaveFileAsync();
if (file != null)
{
CachedFileManager.DeferUpdates(file);
string textboxtext = "";
await FileIO.WriteTextAsync(file, Editor.Document.GetText(Windows.UI.Text.TextGetOptions.None, out textboxtext));
FileUpdateStatus status = await CachedFileManager.CompleteUpdatesAsync(file);
if (status == FileUpdateStatus.Complete)
{
}
else
{
}
}
else
{
}
}
editor
指的是一个RichEditBox
但是我得到两个错误消息:
- "最佳重载方法匹配'Windows.Storage. fileio . writetextasync (Windows.Storage. fileio . writetextasync (Windows.Storage. fileio . writetextasync) "IStorageFile, string)'有一些无效的参数'
- "参数2:无法从'void'转换为'string'"
都在包含await FileIO.WriteTextAsync(file, Editor.Document.GetText(Windows.UI.Text.TextGetOptions.None, out textboxtext));
我该如何解决这个问题?
谢谢你的帮助。
似乎Editor.Document.GetText方法不返回值(或只是一个空分别)。它将输出放到textboxtext变量中,这个变量可以用作FileIO的参数。WriteTextAsync方法:
string textboxtext;
Editor.Document.GetText(Windows.UI.Text.TextGetOptions.None, out textboxtext)
await FileIO.WriteTextAsync(file, textboxtext);
在这里查看GetText详细信息。
问题: GetText返回void
而不是您期望的string
。
你必须这样做:
string textboxtext = string.Empty;
Editor.Document.GetText(Windows.UI.Text.TextGetOptions.None, out textboxtext)
await FileIO.WriteTextAsync(file, textboxtext);