Ben*_*ion 12 wpf richtextbox flowdocument
检测WPF RichTextBox/FlowDocument是否为空的最佳方法是什么?
如果文档中仅存在文本,则以下内容有效.如果它包含UIElement,则不是
new TextRange(Document.ContentStart, Document.ContentEnd).IsEmpty
Run Code Online (Sandbox Code Playgroud)
H.B*_*.B. 14
你可以比较指针,这不是太可靠:
var start = rtb.Document.ContentStart;
var end = rtb.Document.ContentEnd;
int difference = start.GetOffsetToPosition(end);
Run Code Online (Sandbox Code Playgroud)
这将评估2是否加载了RTB,以及4是否已再次输入和删除内容.
如果RTB完全清除,例如通过select all -> delete该值将0.
在MSDN上的Silverlight参考中,找到了另一种方法,可以对其进行调整和改进:
public bool IsRichTextBoxEmpty(RichTextBox rtb)
{
if (rtb.Document.Blocks.Count == 0) return true;
TextPointer startPointer = rtb.Document.ContentStart.GetNextInsertionPosition(LogicalDirection.Forward);
TextPointer endPointer = rtb.Document.ContentEnd.GetNextInsertionPosition(LogicalDirection.Backward);
return startPointer.CompareTo(endPointer) == 0;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7414 次 |
| 最近记录: |