RicheditBox不加载ANSI编码的文档

时间:2015-12-10 08:32:48

标签: uwp

RichEditBox不会加载ANSI编码的文档,但会加载所有其他unicode编码的文本文档。这是下面的代码

FileOpenPicker fileopenpicker = new FileOpenPicker();
fileopenpicker.SuggestedStartLocation = PickerLocationId.Desktop;
fileopenpicker.FileTypeFilter.Add(".txt");
fileopenpicker.ViewMode = PickerViewMode.Thumbnail;

OpenedStorageFile = await fileopenpicker.PickSingleFileAsync();

if (OpenedStorageFile != null)
{
    try
    {
        IRandomAccessStream randomAccStream = await OpenedStorageFile.OpenAsync(FileAccessMode.Read);
        EditorRichEditBox.Document.LoadFromStream(TextSetOptions.None, randomAccStream);
    }
    catch (Exception ex)
    {
        MessageDialog md = new MessageDialog(ex.Message);
        await md.ShowAsync();
 }

1 个答案:

答案 0 :(得分:0)

使用StreamReader和EditorRichEditBox.Document.SetText将帮助您读取ANSI和unicode编码的文本文档。

FileOpenPicker fileopenpicker = new FileOpenPicker();
fileopenpicker.SuggestedStartLocation = PickerLocationId.Desktop;
fileopenpicker.FileTypeFilter.Add(".txt");
fileopenpicker.ViewMode = PickerViewMode.Thumbnail;

StorageFile OpenedStorageFile = await fileopenpicker.PickSingleFileAsync();

if (OpenedStorageFile != null)
{
    try
    {
        IRandomAccessStream randomAccStream = await OpenedStorageFile.OpenAsync(FileAccessMode.Read);
        var st = randomAccStream.AsStream();
        StreamReader sr = new StreamReader(st);
        string s = await sr.ReadToEndAsync();
        EditorRichEditBox.Document.SetText(TextSetOptions.None, s);
    }
    catch (Exception ex)
    {
        MessageDialog md = new MessageDialog(ex.Message);
        await md.ShowAsync();
    }
}