Hallo zusammen,
ich habe ein kleines Problem, wo ich nicht drauf komme wieso es so ist. Das FlowDocumentReader verhält sich ziemlich komisch was die Seitenanzahlaktualisierung angeht, wenn man jedes mal manuell in das unterstehende Object, in dem Fall FlowDocument, Objecte einfügt.
Wenn man die ganze Sache automatisiert, egal ob es eine Methode mit einer Schleife ist oder eine rekrusive Methode oder sogar, wenn man den Event des Buttons auslöst, der die Aktion startet, die Seitenanzahl bleibt immer 1, bis es auf den Bildschirm gelangt, erst dann wird die Seitenanzahl aktualisiert.
Ich habe schon alles mögliche versucht, von BeginInt() + EndInt() (dient zur Intialization) bis hin zum Layout Update.
Wer hat überhaupt eine Ahnung, denn das kluge Google gibt nichts gescheites her.
Hallo,
... die Seitenanzahl bleibt immer 1, bis es auf den Bildschirm gelangt, erst dann wird die Seitenanzahl aktualisiert.
Genau dort entscheidet sich doch auch erst wieviel Platz das Document bei der momentanen Darstellung, und damit wieviel Seiten, es benötigt. Einfach nur ein FlowDocument gibt noch gar nichts her.
Baka wa shinanakya naoranai.
Mein XING Profil.
Hallo,
... die Seitenanzahl bleibt immer 1, bis es auf den Bildschirm gelangt, erst dann wird die Seitenanzahl aktualisiert.
Genau dort entscheidet sich doch auch erst wieviel Platz das Document bei der momentanen Darstellung, und damit wieviel Seiten, es benötigt. Einfach nur ein FlowDocument gibt noch gar nichts her.
Mhhh............ und wie kriege ich es hin, dass es nach jeder Eingabe aktuallisiert wird? 🙁
Indem du dem FlowDocumentReader irgendwie klar machst, das sich das Dokument geändert hat und neu gezeichnet werden muss. Das Problem ist ja eigentlich das der Reader nicht mitbekommt das sich das Document geändert hat, weil das Blocks Property nur nen einfaches Property ohne Change Notification ist. Daher musst du ihm manuell verklickern das sich was geändert hat. Das könnte man z.B. durch Neuzuweisung des Documents im Reader machen. Oder eventuell durch Aufruf von InvalidateVisual, wobei ich mir da nicht sicher bin ob er die Daten des Dcuments dort zwangsweise neu lädt.
Baka wa shinanakya naoranai.
Mein XING Profil.
Indem du dem FlowDocumentReader irgendwie klar machst, das sich das Dokument geändert hat und neu gezeichnet werden muss. Das Problem ist ja eigentlich das der Reader nicht mitbekommt das sich das Document geändert hat, weil das Blocks Property nur nen einfaches Property ohne Change Notification ist. Daher musst du ihm manuell verklickern das sich was geändert hat. Das könnte man z.B. durch Neuzuweisung des Documents im Reader machen. Oder eventuell durch Aufruf von InvalidateVisual, wobei ich mir da nicht sicher bin ob er die Daten des Dcuments dort zwangsweise neu lädt.
Problem gelöst, ich habe das Programm auf DocumentViewer mit PageContent & FixedPages umgeschrieben, wo ich jeder Seite eine bestimmte anzahl an Objekten zuweise. Ist auch besser so.
Dann war deine ursprüngliche Entscheidung fürs FlowDocument schon nicht die richtige oder? Das wird ja grad benutzt um einen Text darzustellen der kein festes Layout hat.
Baka wa shinanakya naoranai.
Mein XING Profil.