تمام سوالات سوالات بدون پاسخ سوال بپرسید

با سلام هر چي جستجو مي كنم چيزي پيدا نكردم من مي خوام مثلا از يك گريد كه داخلش چند كنترل هست يك عكس بگيرم و بهكار بگيرم ايا كسي راه حلي دارد

1 پاسخ

سلام
کلاس Visual در WPF قابلیت کار بروی تصویر رو داره. همه اجزای قابل نمایش در WPF از کلاس Visual ارث می‌برند. پس شما تصویر همه کنترل‌ها رو میتونی ذخیره بکنی.

//Backup layout transform

//Clear layout transform
obj.LayoutTransform = null;

// fix margin offset as well
Thickness margin = obj.Margin;
obj.Margin = new Thickness(0, 0,
                               margin.Right - margin.Left, 
                               margin.Bottom - margin.Top);

// Get the size of canvas
Size size = new Size(obj.ActualWidth, 
                     obj.ActualHeight);

// force control to Update
obj.UpdateLayout();

RenderTargetBitmap targetBitmap =
     new RenderTargetBitmap((int)size.Width,
                           (int)size.Height,
                           96d, 96d,
                           PixelFormats.Pbgra32);

targetBitmap.Render(obj);

// add the RenderTargetBitmap to a Bitmapencoder
PngBitmapEncoder encoder = new PngBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(targetBitmap));

// save file to disk
FileStream fs = File.Open("C:\\targetImageFile.png", FileMode.OpenOrCreate);
encoder.Save(fs);
fs.Flush();
fs.Close();

// return values as they were before
obj.LayoutTransform = transform;
obj.Margin = margin;

توجه ویژه بفرمایید که اگر UpdateLayout رو فرانخوانید، تغییرات اعمال شده (حذف layout transformو margin ) در نما اعمال نمی‌شوند (تصویر مربوط به آنها ساخته نمی‌شود. البته تا انتهای اجرای متود جاری) اما با فراخوانی UpdateLayout برنامه رو مجبور می‌کنیم تا تغییرات رو در همان لحظه اعمال کنه. و بدین ترتیب دستورات خطوط بعد با توجه به تصویر جدید عمل خواهند کرد. می‌توانید این فراخوانی را حذف کنید و نتیجه را امتخان کنید.
یک منبع و مثال

toggle preview



آموزش زبان برنامه نویسی C#
آموزش jquery
آموزش برنامه نویسی
آموزش طراحی وبسایت
آموزش مدیریت وبسایت
آموزش جاوا Java
آموزش پایتون Python
آموزش سی شارپ C#‎
آموزش HTML و CSS
آموزش JavaScript جاوااسکریپت
آموزش jQuery جی کوئری
آموزش ساخت ربات تلگرام
آموزش برنامه‌نویسی PHP
آموزش برنامه‌نویسی اندروید
● آموزش‌های رایگان

سوالات مرتبط

راهنمای استفاده از ویرایشگر
  • *ایتالیک*‌ یا __ایتالیک__
  • **ضخیم** یا __ضخیم__
  • آدرس:[متن](http://url.com/ "عنوان")
  • عکس?![alt متن](/path/img.jpg "عنوان")
  • لیست عددی: 1. Foo 2. Bar
  • برای رفتن به خط بعد، هر جا مایلید که خط جدید شروع شود دو کاراکتر فاصله (space) قرار دهید
  • تگ‌های ساده HTML هم پشتیبانی می‌شوند

تگها:
  • ×137
  • ×42
  • ×2
  • پرسیده شده: 08 ژوئیه '12, 11:45
  • بازدید: 2,583 بار
  • آخرین بروزرسانی: 16 ژوئیه '12, 00:23

این سوال را دنبال کنیدتوسط ایمیل: ایمیل شما (باید معتبر باشد, هرگز به دیگران نمایش داده نمیشود):

هنگامی که شما به سیستم وارد شوید،قادر خواهید بود برای بروز رسانی ها مشترک شوید.


توسط RSS:

پاسخها

پاسخها و نظرها