TextBox 텍스트 용 WPF 응용 프로그램에서 Place Editor에서 작게 만들려합니다. 이를 위해 RichTextBox를 사용하고 싶습니다. RichTextBox는 FlowDocument와 함께 작동하고 TextBlock은 InlineCollection과 함께 작동하므로이 기능이 작동하지 않습니다. Rich TextBox 문서를 InlineCollection으로 변환하는 쉬운 방법이 있습니까? (인라인에서 지원되는 RTB 콘텐츠 만 허용하는 경우)WPF FlowDocument to InlineCollection
0
A
답변
3
FlowDocument에서 모든 인라인을 추출하는 데 다음과 같은 방법을 사용할 수 있습니다. 단락과 단락을 분리하기 위해 여분의 공백 인라인을 추가해야 할 수도 있습니다.
public static class FlowDocumentEx
{
public static ICollection<Inline> GetInlines(this FlowDocument doc)
{
return GetInlines(doc.Blocks);
}
public static ICollection<Inline> GetInlines(TextElementCollection<Block> blocks)
{
var inlines = new List<Inline>();
foreach (var block in blocks)
{
if (block is Paragraph)
{
inlines.AddRange(((Paragraph)block).Inlines);
}
else if (block is Section)
{
inlines.AddRange(GetInlines(((Section)block).Blocks));
}
}
return inlines;
}
}
이처럼 사용합니다 :
textBlock.Inlines.Clear();
textBlock.Inlines.AddRange(richTextBox.Document.GetInlines());
+0
완벽하게 작동합니다. Sharp Develop에서 TextBlock Content 용 서식있는 텍스트 편집기를 구현하는 데 사용합니다! –
관련 문제
- 1. WPF : FlowDocument 인쇄
- 2. WPF FlowDocument 대칭 레이아웃
- 3. WPF FlowDocument ItemsPresenter
- 4. WPF FlowDocument - 단락의 목록 항목
- 5. WPF FlowDocument 내의 링크 처리
- 6. WPF FlowDocument 크기에 맞추기 페이지에
- 7. WPF Flowdocument "대소 문자 바꾸기"기능
- 8. WPF FlowDocument 테이블을 HTML 테이블로 변환
- 9. WPF FlowDocument 공간 크기가 일치하지 않습니다.
- 10. WPF flowdocument 요소 이름이 재설정 되었습니까?
- 11. WPF FlowDocument 테이블 - 자동 맞춤 옵션?
- 12. WPF : 인쇄 대화 상자가없는 FlowDocument 인쇄
- 13. WPF - FlowDocument - 전체 폭으로 늘이기 테이블?
- 14. BackgroundWorker 스레드에서 FlowDocument 만들기
- 15. FlowDocument 반복되는 표 머리글
- 16. WPF의 다중 페이지 FlowDocument
- 17. 외부 리소스에서 제공된 FlowDocument
- 18. 참조 FlowDocument
- 19. FlowDocument 클래스 .NET 클래스
- 20. 가 발생했습니다 - FlowDocument
- 21. MainWindow에 FlowDocument 추가
- 22. WPF FlowDocument : 높이 등을 강제로 계산합니다. "off screen"
- 23. WPF FlowDocument 단락 .BringIntoView()가 새 문서에 대해 작동하지 않습니다.
- 24. WPF RichTextBox/FlowDocument 특정 텍스트에 대한 작업 수행
- 25. WPF FlowDocumentReader 및 FlowDocument 화면 판독기 (NVDA) 처리 가능성
- 26. C# FlowDocument 셀 너비
- 27. wpf multibinding to viewmodel?
- 28. Winforms to WPF Pattern
- 29. Markupconverter WPF to ASP.NET
- 30. RTF to WPF (C#)
당신은 그래서 당신이 필요로하는 모든이'FlowDocument'이다,하여 RichTextBox를 사용하고 싶습니다. 왜 그것을 InlineCollection으로 변환하고 싶습니까? –
편집을 위해 RichTextBox를 사용하고 싶습니다! 나중에 TextBlock에 텍스트를 표시하려고합니다. –
'FlowDocument'는 상당히 복잡하며 BlockCollection과 InlineCollection 및 기타 항목 (일반적이지는 않지만 가질 수도 있음)이 혼합되어 있습니다. 그래서 이것이 올바른 접근이라고 생각하지 않습니다. 변환시 약간의 추가 코드가 필요할 수 있으며 문서를 실행하는 데 문서에 따라 많은 시간이 소요될 수 있습니다. 내 충고는 TextBlock 대신에'RichTextBox','FlowDocumentReader','DocumentViewer','FlowDocumentPageViewer','FlowDocumentScrollViewer' 컨트롤 중 하나를 사용하는 것입니다. 'RichTextBox'의 경우,'IsReadOnly'를'true'로 설정하여 표현 자/뷰어로 사용할 수 있습니다. –