ورود

View Full Version : سوال: گرفتن عكس از گريد



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 نیز کافیه