C#에서 RTF 문자열을 XAML 문자열로 변환하는 가장 효율적인 방법은 무엇입니까? System.Windows.Documents.XamlRtfConverter.ConvertRtfToXaml(string rtfContent)
을 사용하고 싶지만 불행히도 그 클래스는 내부적입니다.RTF 문자열을 XAML 문자열로 변환
5
A
답변
5
당신은 XAML 문자열에 RTF 문자열에서 갈 수 있지만 이미지 손실 :
var rtf = File.ReadAllText(rtfFileName);
var doc = new FlowDocument();
var range = new TextRange(doc.ContentStart, doc.ContentEnd);
using (var inputStream = new MemoryStream(Encoding.ASCII.GetBytes(rtf)))
{
range.Load(inputStream, DataFormats.Rtf);
using (var outputStream = new FileStream(xamlFileName, FileMode.Create))
{
range.Save(outputStream, DataFormats.XamlPackage);
}
}
1
:
var rtf = File.ReadAllText(rtfFileName);
var doc = new FlowDocument();
var range = new TextRange(doc.ContentStart, doc.ContentEnd);
using (var inputStream = new MemoryStream(Encoding.ASCII.GetBytes(rtf)))
{
range.Load(inputStream, DataFormats.Rtf);
using (var outputStream = new MemoryStream())
{
range.Save(outputStream, DataFormats.Xaml);
outputStream.Position = 0;
using (var xamlStream = new StreamReader(outputStream))
{
var xaml = xamlStream.ReadToEnd();
File.WriteAllText(xamlFileName, xaml);
}
}
}
당신이 XAML 패키지에 RTF 문자열에서 가야 이미지를 유지하기를 System.Reflection을 사용하여 System.Windows.Documents에서 내부 메서드 인 XamlRtfConverter를 호출합니다 (PresentationFramework.dll에 대한 참조가 필요함). RichTextBox를 통한 변환과 달리 메모리 충돌없이 Parallel.ForEach()에서 수천 회의 변환 작업을 수행합니다.
private static string ConvertRtfToXaml(string rtfContent)
{
var assembly = Assembly.GetAssembly(typeof(System.Windows.FrameworkElement));
var xamlRtfConverterType = assembly.GetType("System.Windows.Documents.XamlRtfConverter");
var xamlRtfConverter = Activator.CreateInstance(xamlRtfConverterType, true);
var convertRtfToXaml = xamlRtfConverterType.GetMethod("ConvertRtfToXaml", BindingFlags.Instance | BindingFlags.NonPublic);
var xamlContent = (string)convertRtfToXaml.Invoke(xamlRtfConverter, new object[] { rtfContent });
return xamlContent;
}
관련 문제
- 1. 문자열을 우리 문자열로 변환
- 2. 문자열을 여러 문자열로 변환
- 3. PHP - 문자열을 문자열로 변환
- 4. 문자열을 16 진수 문자열로 변환
- 5. 문자열을 16 진수 문자열로 변환
- 6. 텍스트 문자열을 HTML 문자열로 변환
- 7. JSON 응답 문자열을 문자열로 변환
- 8. CGo없이 문자열을 C 문자열로 변환
- 9. 유니 코드 문자열을 문자열로 변환
- 10. 문자열을 C 스타일 문자열로 변환
- 11. C# 문자열을 JavaScript 문자열로 변환
- 12. datetime 문자열을 날짜 문자열로 변환
- 13. 날짜 문자열을 다른 문자열로 변환
- 14. 문자열을 NSMutableString에서 NSMutableString 문자열로 변환
- 15. 문자열을 문자열로 변환 할 수 없습니다.
- 16. 자바에서 UTF-8 문자열을 RTF 문자열로 변환하는 방법은 무엇입니까?
- 17. 문자열을 새 이미지로 변환 XAML C#
- 18. VB.NET에서 HTML to RTF 문자열 변환
- 19. RTF 파일을 DOC로 변환
- 20. 임의의 문자열을 고정 크기 문자열로 변환
- 21. BFS를 사용하여 한 문자열을 다른 문자열로 변환
- 22. SML에서 oct 문자열을 16 진수 문자열로 변환
- 23. 16 진수 문자열을 C에서 일반 문자열로 변환 #
- 24. 문자열을 부분 문자열로 변환 할 수 있습니까?
- 25. Uri를 문자열로 변환하고 문자열을 Uri로 변환
- 26. 액션 스크립트 자바 스크립트 - 문자열을 문자열로 변환
- 27. 자바 - 글자 문자열을 숫자 문자열로 변환
- 28. 문자열을 ascii로 변환하고 아스키를 문자열로 변환
- 29. ASCII 문자의 문자열을 해당 십진수의 문자열로 변환
- 30. Ansi C - 문자열을 소문자 문자열로 변환
'Xaml 문자열'이란 무엇입니까? –
@MehdiKhademloo [태그 위키] 읽기 (http://stackoverflow.com/tags/xaml/info) –
RTF 문자열과 관련된 'XAML 문자열'은 저에게 이상합니다. –