Autor Beitrag
Yasutani
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Do 06.07.17 11:39 
Guten Morgen,

das Ziel ist ein einfachster Texteditor für RTF in WPF. Leider geht beim laden von RTF-Dateien mit DataFormats.RTF der HangingIndent verloren.
Mit nachfolgenden Code kann das nach nachvollzogen werden:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
this.richTextBox.Document = new FlowDocument();
richTextBox.AppendText("test test test test test test test test.");
richTextBox.SelectAll();
richTextBox.Selection.ApplyPropertyValue(Paragraph.MarginProperty, new Thickness(30000));
richTextBox.Selection.ApplyPropertyValue(Paragraph.TextIndentProperty, -10.0);

// ... \li450\ri0\sa0\sb0\fi-150\ql\par --> li=450 und fi=-150, ok

var dataString = string.Empty;
var textRange = new TextRange(this.richTextBox.Document.ContentStart, this.richTextBox.Document.ContentEnd);
using (MemoryStream memoryStream = new MemoryStream())
{
textRange.Save(memoryStream, DataFormats.Rtf);
memoryStream.Seek(0, SeekOrigin.Begin);
using (StreamReader streamReader = new StreamReader(memoryStream))
    dataString = streamReader.ReadToEnd();
}

textRange = new TextRange(this.richTextBox.Document.ContentStart, this.richTextBox.Document.ContentEnd);
using (MemoryStream memoryStream = new MemoryStream(Encoding.ASCII.GetBytes(dataString)))
{
textRange.Load(memoryStream, DataFormats.Rtf);
}

// .... \li450\ri0\sa0\sb0\fi0\ql\par  --> li=450 und fi=0, fehler

Speichern als RTF funktioniert - nur das laden hat einen Fehler. Als XAML würde es klappen ist aber leider keine Option.

Ich finde auch im Netz nichts dazu - hat jemand eine Idee?

Moderiert von user profile iconTh69: C#-Tags hinzugefügt
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Do 06.07.17 12:26 
Hallo,

da scheint wohl die RTF-Umsetzung nicht 100%ig zu sein.

Kommen denn in deinem RTF-Dokument nur ASCII-Zeichen vor? Nimm mal besser Encoding.Default.
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 06.07.17 13:27 
- Nachträglich durch die Entwickler-Ecke gelöscht -