用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));

的行上

我该如何解决这个问题?

谢谢你的帮助。

用c# Windows Store应用程序从richditbox写入文本到文件时遇到麻烦

似乎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);