UWP RichEditBox 只读 .rtf 文件吗?
UWP Does RichEditBox read only .rtf files?
我尝试使用此方法将文件内容添加到我的 RichEditBox 中:
myRichEditBox.Document.LoadFromStream(Windows.UI.Text.TextSetOptions.None, streamFile);
这就是我填充 streamFile 变量的方式:
public static async void openFileAsync(string pathFolder, string file)
{
Windows.Storage.StorageFolder folder = await Windows.Storage.StorageFolder.GetFolderFromPathAsync(pathFolder);
System.Diagnostics.Debug.WriteLine("folder : " + folder.Path);
Windows.Storage.StorageFile fileOpen = await folder.GetFileAsync(file);
System.Diagnostics.Debug.WriteLine("file : " + fileOpen.Path);
Windows.Storage.Streams.IRandomAccessStream stream = await fileOpen.OpenAsync(Windows.Storage.FileAccessMode.Read);
streamFile = stream;
}
我无一例外地升起richBoxEdit text is unreadable(字符不可读)。
我想阅读txt文件。
预先感谢您的帮助。
如果要使用Stream
读取文件内容,可以使用下面的方法。这将 return 文件的内容作为 Text
.
internal async Task<string> UsingStream(StorageFile sampleFile)
{
IRandomAccessStream stream = await sampleFile.OpenAsync(FileAccessMode.Read);
ulong size = stream.Size;
string text = string.Empty;
using (var inputStream = stream.GetInputStreamAt(0))
{
using (var dataReader = new DataReader(inputStream))
{
uint numBytesLoaded = await dataReader.LoadAsync((uint)size);
text = dataReader.ReadString(numBytesLoaded);
}
}
return text;
}
参考Official Microsoft Documentation
但是,如果您想直接加载文本而不是流,请使用下面。
string fileText = await FileIO.ReadTextAsync(sampleFile);
然后将数据分配给 RichEditBox
,如下所示。
MyRichEditBox.Document.SetText(Windows.UI.Text.TextSetOptions.None, await UsingStream(sampleFile));
我尝试使用此方法将文件内容添加到我的 RichEditBox 中:
myRichEditBox.Document.LoadFromStream(Windows.UI.Text.TextSetOptions.None, streamFile);
这就是我填充 streamFile 变量的方式:
public static async void openFileAsync(string pathFolder, string file)
{
Windows.Storage.StorageFolder folder = await Windows.Storage.StorageFolder.GetFolderFromPathAsync(pathFolder);
System.Diagnostics.Debug.WriteLine("folder : " + folder.Path);
Windows.Storage.StorageFile fileOpen = await folder.GetFileAsync(file);
System.Diagnostics.Debug.WriteLine("file : " + fileOpen.Path);
Windows.Storage.Streams.IRandomAccessStream stream = await fileOpen.OpenAsync(Windows.Storage.FileAccessMode.Read);
streamFile = stream;
}
我无一例外地升起richBoxEdit text is unreadable(字符不可读)。 我想阅读txt文件。
预先感谢您的帮助。
如果要使用Stream
读取文件内容,可以使用下面的方法。这将 return 文件的内容作为 Text
.
internal async Task<string> UsingStream(StorageFile sampleFile)
{
IRandomAccessStream stream = await sampleFile.OpenAsync(FileAccessMode.Read);
ulong size = stream.Size;
string text = string.Empty;
using (var inputStream = stream.GetInputStreamAt(0))
{
using (var dataReader = new DataReader(inputStream))
{
uint numBytesLoaded = await dataReader.LoadAsync((uint)size);
text = dataReader.ReadString(numBytesLoaded);
}
}
return text;
}
参考Official Microsoft Documentation
但是,如果您想直接加载文本而不是流,请使用下面。
string fileText = await FileIO.ReadTextAsync(sampleFile);
然后将数据分配给 RichEditBox
,如下所示。
MyRichEditBox.Document.SetText(Windows.UI.Text.TextSetOptions.None, await UsingStream(sampleFile));