简单文字编辑器
选中TextBox AcceptsReturn属性将文本框的多行内容保存到文本文件后,只有在记事本中打开时才会生成单行写入的所有文本。在UWP TextBox控件中加载文件时,它打开正常。我对旧的WPF TextBox控件没有这个问题。
我的程序有两个按钮,打开并保存。在两者之间有文本框。
using System;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Popups;
using Windows.Storage.Pickers;
using Windows.Storage;
// ...
StorageFile selectedFile;
private async void openFileButton_Click(object sender, RoutedEventArgs e)
{
contentsTextBox.Text = string.Empty;
addressText.Text = string.Empty;
selectedFile = null;
FileOpenPicker openDialog = new FileOpenPicker();
openDialog.FileTypeFilter.Add("*");
selectedFile = await openDialog.PickSingleFileAsync();
if (selectedFile != null)
{
addressText.Text = selectedFile.Path;
try
{
contentsTextBox.Text = await FileIO.ReadTextAsync(selectedFile);
}
catch (ArgumentOutOfRangeException) { } // In case file is empty
}
}
private async void saveFileButton_Click(object sender, RoutedEventArgs e)
{
if (selectedFile != null)
{
await FileIO.WriteTextAsync(selectedFile, contentsTextBox.Text);
await new MessageDialog("Changes saved!").ShowAsync();
}
}
答案 0 :(得分:1)
在TextBox的Text属性中,行尾由\r
表示。但是,记事本希望\r\n
换行。
有关两者(和其他变体)之间差异的更多信息,see this。
只需更换" \ r"到" \ r \ n"在将文本保存到文件之前。
await FileIO.WriteTextAsync(selectedFile, contentsTextBox.Text.Replace("\r", "\r\n"));