c# - change MSChart Background for printing -
i have put in code change mscharting area colour when printing.
chart.chartareas[o].backcolor = system.drawing.color.white; chart.printing.printpreview(); my quesiton is, how can handle color change oringinal color, eitehr after user has selected print, or close form printpreview dialog,, or if click on dialogs "x".
in fact if use printdialog instead, how set background normal once printing has been completed or canceled?
little late hope helps someone.
to mschart print i'am using printdocument events. beginprint event setting colors printing, printpage event print , endprint event setting colors before print.
sample code:
public graphfrm() { initializecomponent(); //new printdocument object reset default 1 chart.printing.printdocument = new system.drawing.printing.printdocument(); //set events chart.printing.printdocument.printpage += new system.drawing.printing.printpageeventhandler(printdocument_printpage); chart.printing.printdocument.beginprint +=new system.drawing.printing.printeventhandler(printdocument_beginprint); chart.printing.printdocument.endprint += new system.drawing.printing.printeventhandler(printdocument_endprint); //default print setting margins , landscape chart.printing.printdocument.defaultpagesettings.margins.bottom = 50; chart.printing.printdocument.defaultpagesettings.margins.top = 50; chart.printing.printdocument.defaultpagesettings.margins.left = 50; chart.printing.printdocument.defaultpagesettings.margins.right = 50; chart.printing.printdocument.defaultpagesettings.landscape = true; chart.printing.printdocument.defaultpagesettings.color = true; ... } public void print() { //print method show print dialog chart.printing.print(true); } void printdocument_beginprint(object sender, system.drawing.printing.printeventargs e) { //set print color printchartcolorset(); } void printdocument_endprint(object sender, system.drawing.printing.printeventargs e) { //restore colors printchartcolorrestoredefault(); } void printdocument_printpage(object sender, system.drawing.printing.printpageeventargs e) { //print chart rectangle defined margins rectangle chartposition = new rectangle(e.marginbounds.x, e.marginbounds.y, e.marginbounds.width, e.marginbounds.height); chart.printing.printpaint(e.graphics, chartposition); } color backcolor, borderlinecolor, cabackcolor, cabordercolor, axcolor, lebackcolor, leforecolor; void printchartcolorset() { backcolor = chart.backcolor; chart.backcolor = color.white; borderlinecolor = chart.borderlinecolor; chart.borderlinecolor = color.white; cabackcolor = chart.chartareas[0].backcolor; chart.chartareas[0].backcolor = color.white; cabordercolor = chart.chartareas[0].bordercolor; chart.chartareas[0].bordercolor = color.black; axcolor = chart.chartareas[0].axes[0].linecolor; foreach(axis in chart.chartareas[0].axes) { a.linecolor = color.black; a.titleforecolor = color.black; a.majorgrid.linecolor = color.black; a.majortickmark.linecolor = color.black; a.minorgrid.linecolor = color.black; a.minortickmark.linecolor = color.black; a.labelstyle.forecolor = color.black; } lebackcolor = chart.legends[0].backcolor; chart.legends[0].backcolor = color.white; leforecolor = chart.legends[0].forecolor; chart.legends[0].forecolor = color.black; } void printchartcolorrestoredefault() { chart.backcolor = backcolor; chart.borderlinecolor = borderlinecolor; chart.chartareas[0].backcolor = cabackcolor; chart.chartareas[0].bordercolor = cabordercolor; foreach(axis in chart.chartareas[0].axes) { a.linecolor = axcolor; a.titleforecolor = axcolor; a.majorgrid.linecolor = axcolor; a.majortickmark.linecolor = axcolor; a.minorgrid.linecolor = axcolor; a.minortickmark.linecolor = axcolor; a.labelstyle.forecolor = axcolor; } chart.legends[0].backcolor = lebackcolor; chart.legends[0].forecolor = leforecolor; }
Comments
Post a Comment