m110_110
دوشنبه 03 بهمن 1390, 13:46 عصر
با سلام
هر چي جستجو مي كنم چيزي پيدا نكردم
من مي خوام مثلا از يك گريد كه داخلش چند كنترل هست يك عكس بگيرم و بهكار بگيرم
ايا كسي راه حلي دارد
مهدی فرزاد
چهارشنبه 05 بهمن 1390, 08:46 صبح
سلام
خیلی ساده شما میتنوید با کد زیر از کنترلتون عکس بگیرید
RenderTargetBitmap rtb = new RenderTargetBitmap((int)this.dataGrid1.ActualWidth , (int)this.dataGrid1.ActualHeight, 96, 96, PixelFormats.Pbgra32);
rtb.Render(this.dataGrid1);
حالا اگه بخواید اونو توی یک کنترل Image نمایش بدید این کدرو مینویسید
image1.Source = rtb as ImageSource;
و اگر میخواید یک کپی ازش داشته باشی و در نرم افزاری مثل فوتوشاپ ازش استفاده کنی
Clipboard.SetImage(rtb);
نکته : این عدد 96 در کد بالا میزان رزولیشن شماهست و هرچه بیشتر باشه کیفیت عکس بیشتر میشه و سایز اون نسبت یه حالتی که رزولیشن کمتر هست بیشتر
اگر کیفیت بالا میخواید 300 قرار بدید و در غیر این صورت 72 نیز کافیه
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.