View Full Version : چاپ فرم به صورت Landscape در WPF
helpsos
یک شنبه 24 اردیبهشت 1391, 00:12 صبح
سلام می خواهم فرمم را به صورت Landscape چاپ نمایم .
زمانی که کد را از فرم مورد نظر اجرا می کنم برنامم جواب می دهد ولی وقتی این کد را که به شکل تابع است از سایر فرم ها صدا می زنم فرمم را به صورت portrait چاپ می کند .
لطفا با مثال کممممک نمایید.
در زیر برنامه نیز ضمیمه شده است.
مهدی فرزاد
یک شنبه 24 اردیبهشت 1391, 09:29 صبح
سلام
من به زبان خیلی ساده میگم
علت اینه که هنوز فرم شما نمایش داده نشده پس کنترلی که به نام b1 ایجاد کردید هنوز اندازه های واقعی خودش رو بدست نیاورده
من یک راه (شاید نچندان منطقی اما اجرایی ) پیشنهاد میکنم
اول یک کلاس برای پرینتت بساز که متد رو از اون فراخونی کنی
class Print
{
public static void print(System.Windows.Media.Visual visual)
{
PrintDocument printDocument = new PrintDocument();
PrintDialog printpage = new PrintDialog();
printDocument.DefaultPageSettings.PaperSize = new System.Drawing.Printing.PaperSize("PaperA4", 840, 1180);
printpage.PrintVisual(visual, "1");
}
}
بعد کد زیر رو قبل از فراخونی متد از ویندوز دیگه بنویس
Window1 win = new Window1 { WindowStyle = System.Windows.WindowStyle.None, AllowsTransparency = true, Opacity = 0 };
win.Show();
win.Closing+=(s2,e2)=>
{
Print.print(win.b1);
};
win.Close();
این کد باعث میشه ابتدا وندوز شما با opacity صفر نمایش داده بشه و سریع بسته بشه در حقیقت شما ویندوز رو نمی بینی و در هنگام بسته شدن دستور پرینت ارسال میشه
ببین این کارت رو راه میندازه؟؟
helpsos
یک شنبه 24 اردیبهشت 1391, 09:38 صبح
ممنون
فوق العاده ای
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.