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
Post a Comment