Đây là phần mở rộng ý tưởng của H.B. hoạt động với cả văn bản và hình ảnh .
Tôi thấy rằng sự khác biệt luôn là> 4 bất cứ khi nào RTB có văn bản. Tuy nhiên, nếu bạn chỉ dán một hình ảnh là 3. Để chống lại điều này tôi nhìn vào chiều dài chuỗi của chuỗi rtf thô.
var start = Document.ContentStart;
var end = Document.ContentEnd;
var difference = start.GetOffsetToPosition(end);
HasText = difference > 4 || GetRtfText().Length > 350;
public string GetRtfText()
{
var tr = new TextRange(Document.ContentStart, Document.ContentEnd);
using (var ms = new MemoryStream())
{
tr.Save(ms, DataFormats.Rtf);
return Encoding.Default.GetString(ms.ToArray());
}
}
Qua thử nghiệm của tôi cho thấy một ô trống không có ký tự có chiều dài 270. Nếu tôi thậm chí dán trong một hình ảnh đó chỉ 1 pixel kích thước nó khinh khí cầu đến 406.
tôi chơi với toggling trên các tùy chọn định dạng khác nhau mà không cần gõ bất kỳ chữ cái và đã không nhận được gần 300, vì vậy tôi đã đi với 350 cho đường cơ sở.
Kiểm tra độ dài có thể tốn kém nếu không có ký tự văn bản, nhưng chúng được dán trong một hình ảnh lớn.
Nguồn
2017-10-19 23:26:25
Số đếm là số ngay cả khi RichTextBox trống. –
Hmm, điều đó thực sự có ý nghĩa ... –
Tôi đã chỉnh sửa câu trả lời của mình để hiển thị một cách tiếp cận khác, mặc dù nó hơi lạ. –