Benutzer mit den meisten Antworten
RichTextBox oder Textblock????

Frage
-
Hallo,
ich lerne WPF an Hand der Erstellung einer App für Kundenverwaltung und setze mir da immer neue Aufgaben.
Nun steht das Thema einem potentiellen Nutzer die Möglichkeit zu geben einen Freitext einzugeben, ähnlich diesem Text. Der Text soll dann in einem Datenbankfeld gespeichert werden. Später soll dieser Text aus der Datenbank abgerufen und bei Bedarf ergänzt werden. Dabei will ich eine Historie führen. Es soll also nachvollziehbar sein, welcher Text wann dazugekommen ist z.B. durch vorheriges Einfügen des aktuellen Datums über einen Button.
Welches Control bietet sich dafür an? Die Richtextbox oder ein Textblock oder vielleicht was ganz anderes.
Danke für Euren Input.
Jürgen
- Bearbeitet JKeitzl Mittwoch, 17. August 2016 17:43
- Verschoben Dimitar DenkovMicrosoft contingent staff, Moderator Donnerstag, 18. August 2016 05:36 WPF-Frage (aus: XAML)
Antworten
-
Hallo Jürgen,
das einfachste ist auf jeden Fall die RichTextBox. Diese verwaltet das eingegebene als eine Instanz von FlowDocument. Dieses kannst du auch problemlos in XAML exportieren was dann wiederum in der Datenbank gespeichert werden kann. Das XAML kann natürlich auch ganz einfach zurück gewandelt werden.
An Formatierungen hast du das meiste was man so braucht. Also Fett, Kursiv (usw.), Tabellen, Aufzählungen, Absätze usw.In WPF hast du theoretisch auch die Chance die RichTextBox von Windows Forms einzubinden, bei der würdest du RTF Code bekommen. Der kann IMO auch alles (wenn nicht sogar mehr) als WPFs FlowDocument. Aber es ist eben ein natives Windows Control und damit nicht immer so einfach zu benutzen.
Konvertieren lassen sich die Formate in der Theorie auch. Aber teilweise mit erheblichem Aufwand verbunden.
Im Internet gibt es außerdem diverse Anbieter für andere Controls die noch weitaus mehr können als das von mir genannte.
Ich würde an deiner Stelle zu WPFs RichTextBox und einem FlowDocument greifen. Im Internet findet man diverse Beispiele wie man das Umwandeln zu XAML und wieder zurück machen kann. Beispielsweise hier.
Tom Lambert - .NET (C#) MVP
Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Moderator Montag, 22. August 2016 06:34
- Als Antwort markiert JKeitzl Montag, 22. August 2016 18:24
- Tag als Antwort aufgehoben JKeitzl Freitag, 30. September 2016 16:27
- Als Antwort markiert JKeitzl Samstag, 1. Oktober 2016 09:19
Alle Antworten
-
Hallo Jürgen,
das einfachste ist auf jeden Fall die RichTextBox. Diese verwaltet das eingegebene als eine Instanz von FlowDocument. Dieses kannst du auch problemlos in XAML exportieren was dann wiederum in der Datenbank gespeichert werden kann. Das XAML kann natürlich auch ganz einfach zurück gewandelt werden.
An Formatierungen hast du das meiste was man so braucht. Also Fett, Kursiv (usw.), Tabellen, Aufzählungen, Absätze usw.In WPF hast du theoretisch auch die Chance die RichTextBox von Windows Forms einzubinden, bei der würdest du RTF Code bekommen. Der kann IMO auch alles (wenn nicht sogar mehr) als WPFs FlowDocument. Aber es ist eben ein natives Windows Control und damit nicht immer so einfach zu benutzen.
Konvertieren lassen sich die Formate in der Theorie auch. Aber teilweise mit erheblichem Aufwand verbunden.
Im Internet gibt es außerdem diverse Anbieter für andere Controls die noch weitaus mehr können als das von mir genannte.
Ich würde an deiner Stelle zu WPFs RichTextBox und einem FlowDocument greifen. Im Internet findet man diverse Beispiele wie man das Umwandeln zu XAML und wieder zurück machen kann. Beispielsweise hier.
Tom Lambert - .NET (C#) MVP
Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Moderator Montag, 22. August 2016 06:34
- Als Antwort markiert JKeitzl Montag, 22. August 2016 18:24
- Tag als Antwort aufgehoben JKeitzl Freitag, 30. September 2016 16:27
- Als Antwort markiert JKeitzl Samstag, 1. Oktober 2016 09:19
-
Hallo Tom,
ist schon eine Weile her mit deiner Antwort. Ich hatte aber noch ein paar andere Probleme mit der Sache.
Nun mache ich hier weiter und Frage mich wie die Methode toFlowDokument aus dem genannten Beispiel angewendet wird.
Ich lese mit DataReader in einer while Schleife den Datensatz ein und weise die Felder entsprechenden Variablen zu
ncomChange.CommentsCompany = myReader["bemerkung"].ToString() ;
"Bemerkung" beinhaltet ein xaml String.
wenn ich im Nachgang die Methode
ncomChange.CommentsCompany.toFlowDocument();
ausführe, meckert VS, das die Methode nicht implementiert ist.
Wo ist mein Fehler?
Gruß
Jürgen