1

Ok, most of you will say "remove your element from its previous parent before adding it to the new panel". I know that, I already applied this many times in other situations, and I can't explain why it doesn't work in this particular case.

Here is an extract of my Debug session and where the exception happened :

enter image description here

As you can see, the parent of my element has no children ! Do you have any advice ? How can I diagnose this problem ? Thanks !

EDIT : I precise that the element has previously been added to a panel used to generate an XPS, and removed after the generation is completed. ==> this is done before we enter in the "AddNewSpecialElement method", but it shouldn't change the problem above.

4

1 に答える 1

0

問題が解決しました。説明。

これらの手順に従うと、問題が発生しました。

  1. 画面にビジュアルのリストを描画します(すべてのビジュアルは単一のstackPanelに配置されます)==> OK
  2. stackPanelからビジュアルを削除して、自分のDocumentPaginatorで使用します==> OK
  3. それらを印刷またはエクスポートします(たとえば、を使用してPrintQueue.CreateXpsDocumentWriter().Write(paginator))。==>わかりました
  4. エクスポートが完了し、Paginatorが破棄されたら、ビジュアルを元のstackPanelに追加して、画面に再度表示します==> Ok
  5. 手順2から繰り返して新しいXPSエクスポートを開始します==>例外!

Paginatorを処分するだけで十分だと思いました。ステップ4がうまくいったので、そうではないと考える理由はありませんでした。実際、ステップ3bで、Paginator内の親ビジュアルからビジュアルを明示的に削除する必要がありました。

読んでくれてありがとう。

于 2012-07-09T15:03:29.423 に答える