c# - Trying to print a multi-grid WPF that contains WPF charting toolkit charts but getting a stack overflow exception -


i have application contains several different grids, each representing different page needs printed. able build fixed document , print out until needed add chart 1 of grids. on 2 of these grids collects user data plotted chart using wpf charting toolkit. when try clone grids contain charts , try add them the fix document stack overflow execption triggered line of code string gridxaml = xamlwriter.save(gridname);

    private void print_click(object sender, routedeventargs e)     {         printdialog pd = new printdialog();         pd.userpagerangeenabled = true;          document = new fixeddocument();          addpage(mpeval);         addpage(qc);         addpage(id);         addpage(aws);         addpage(gar);         addpage(sa);         addpage(uag);         addpage(lcd);         addpage(rfvolume);         addpage(rfsurface);          if (pd.showdialog() == true)         {              documentpaginator paginator = document.documentpaginator;              if (pd.pagerangeselection == pagerangeselection.userpages)             {                 paginator = new pagerangedocumentpaginator(document.documentpaginator, pd.pagerange);             }             pd.printdocument(paginator, mpsite.text);          }     }      private void addpage(grid gridname)     {         var pagesize = new size(8.26 * 96, 11.69 * 96); // a4 page, @ 96 dpi         document.documentpaginator.pagesize = pagesize;         // create fixedpage         var fixedpage = new fixedpage();         fixedpage.width = pagesize.width;         fixedpage.height = pagesize.height;         // add visual, measure/arrange page.         string gridxaml = xamlwriter.save(gridname);         stringreader stringreader = new stringreader(gridxaml);         xmlreader xmlreader = xmltextreader.create(stringreader, new xmlreadersettings());         grid tempgrid = (grid)xamlreader.load(xmlreader);         fixedpage.children.add((uielement)tempgrid);         fixedpage.measure(pagesize);         fixedpage.arrange(new rect(new point(), pagesize));         fixedpage.updatelayout();          // add page document         var pagecontent = new pagecontent();         ((iaddchild)pagecontent).addchild(fixedpage);         document.pages.add(pagecontent);     } 

can please point me in right direction on how able add these fixed document or let me know if have hit dead end , need go route. appreciated.

thank you,

ryan

you can have , see if work you:

 system.xaml.xamlservices.save(gridname); 

the problem experiencing due recursive call.


Comments