Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
WPF : FlowDocumentReader - Unterschiedliches Verhalten bei Aktionen
morbus85
myCSharp.de - Member



Dabei seit:
Beiträge: 84

Themenstarter:

WPF : FlowDocumentReader - Unterschiedliches Verhalten bei Aktionen

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
talla
myCSharp.de - Experte

Avatar #avatar-3214.jpg


Dabei seit:
Beiträge: 7290
Herkunft: Esslingen

beantworten | zitieren | melden

Hallo,
Zitat von morbus85
... 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.
private Nachricht | Beiträge des Benutzers
morbus85
myCSharp.de - Member



Dabei seit:
Beiträge: 84

Themenstarter:

beantworten | zitieren | melden

Zitat von talla
Hallo,
Zitat von morbus85
... 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?
private Nachricht | Beiträge des Benutzers
talla
myCSharp.de - Experte

Avatar #avatar-3214.jpg


Dabei seit:
Beiträge: 7290
Herkunft: Esslingen

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
morbus85
myCSharp.de - Member



Dabei seit:
Beiträge: 84

Themenstarter:

beantworten | zitieren | melden

Zitat von talla
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.
private Nachricht | Beiträge des Benutzers
talla
myCSharp.de - Experte

Avatar #avatar-3214.jpg


Dabei seit:
Beiträge: 7290
Herkunft: Esslingen

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers