为什么一个空的 RichtTextBox 将“\r\n”作为文本?
Why an empty RichtTextBox has "\r\n" as text?
这是一个文本编辑器。我正在尝试打开一个新文件,如果现有文件不为空,用户会收到一条警告,要求用户保存文件或不保存文件。但是如果我使用条件 if (text== "")
,文本的值仍然有 "\r\n"
换行值。即使我没有点击文本区域。
为什么字符串获取新行的值?它不一定是空的?
private void New_Click(object sender, RoutedEventArgs e)
{
var text = new TextRange(richtxtbox.Document.ContentStart, richtxtbox.Document.ContentEnd).Text;
if (text == "")
{
MainWindow newWindow = new MainWindow();
newWindow.Show();
Window.GetWindow(this).Close();
}
else
{
// ...
}
}
我必须这样做:
if (text == "" || text == "\r\n")
{
MainWindow newWindow = new MainWindow();
newWindow.Show();
Window.GetWindow(this).Close();
}
您写道:
I am trying to open a new file and if the existing file is not empty...
什么意思“现有文件不为空”?我猜你指的是 RichtextBox
的当前内容,它实际上是 FlowDocument
对象的容器。对吗?
var text = new TextRange(richtxtbox.Document.ContentStart, richtxtbox.Document.ContentEnd).Text
的结果取决于 FlowDocument
的内容。
如果您声明 RichTextBox
如下,那么 text
将包含 "\r\n"
。这是因为 FlowDocument
将包含一个 Paragraph
块。当此段落转换为文本时,它会自动附加 Environment.NewLine
.
<RichTextBox Name="richtxtbox">
<FlowDocument>
<Paragraph>
</Paragraph>
</FlowDocument>
</RichTextBox>
但是,如果您将 RichTextBox
声明为空 FlowDocument
,那么 text
将是空的 - 它包含 0
个块。
<RichTextBox Name="richtxtbox">
<FlowDocument>
</FlowDocument>
</RichTextBox>
有关详细信息,请阅读以下文章:RichTextBox Overview
这是一个文本编辑器。我正在尝试打开一个新文件,如果现有文件不为空,用户会收到一条警告,要求用户保存文件或不保存文件。但是如果我使用条件 if (text== "")
,文本的值仍然有 "\r\n"
换行值。即使我没有点击文本区域。
为什么字符串获取新行的值?它不一定是空的?
private void New_Click(object sender, RoutedEventArgs e)
{
var text = new TextRange(richtxtbox.Document.ContentStart, richtxtbox.Document.ContentEnd).Text;
if (text == "")
{
MainWindow newWindow = new MainWindow();
newWindow.Show();
Window.GetWindow(this).Close();
}
else
{
// ...
}
}
我必须这样做:
if (text == "" || text == "\r\n")
{
MainWindow newWindow = new MainWindow();
newWindow.Show();
Window.GetWindow(this).Close();
}
您写道:
I am trying to open a new file and if the existing file is not empty...
什么意思“现有文件不为空”?我猜你指的是 RichtextBox
的当前内容,它实际上是 FlowDocument
对象的容器。对吗?
var text = new TextRange(richtxtbox.Document.ContentStart, richtxtbox.Document.ContentEnd).Text
的结果取决于 FlowDocument
的内容。
如果您声明 RichTextBox
如下,那么 text
将包含 "\r\n"
。这是因为 FlowDocument
将包含一个 Paragraph
块。当此段落转换为文本时,它会自动附加 Environment.NewLine
.
<RichTextBox Name="richtxtbox">
<FlowDocument>
<Paragraph>
</Paragraph>
</FlowDocument>
</RichTextBox>
但是,如果您将 RichTextBox
声明为空 FlowDocument
,那么 text
将是空的 - 它包含 0
个块。
<RichTextBox Name="richtxtbox">
<FlowDocument>
</FlowDocument>
</RichTextBox>
有关详细信息,请阅读以下文章:RichTextBox Overview