ورود

View Full Version : سوال: کار با کنترل image



شرلوک هلمز
شنبه 21 مرداد 1391, 21:32 عصر
من چند سوال دارم ممنون میشوم اگر کسی جواب بدهد
1- آیا میشود در wpf تعدادی کنترل را که درون مثلا یک گرید وجود دارد با کد دریافت و درون یک آرایه ریخت مثلا فرض کنیم داخل یک گرید چند کنترل image وجود دارد من میخواهم این کنترلها را درون یک ارایه بریزم و به آنها تصویر اضافه کنم
2- آیا میشود یک bitmap را به یک bitmapimage تبدیل کرد . توضیح اینکه من یک کلاس دارم که اکنون یک شی از نوع MemoryStream بر میگرداند و من آن را به یک bimapimage نسبت میدهم و سپس انرا به image وصل میکنم و مشکل حل میشود اما من میخواهم مستقیما خروجی کلاس را به image نسبت بدهم . در کلاس از فضاهای نام wpf استفاده نشده است .
2- چطور یک مقدار عددی را به کنترل image نسبت بدهم تا با کلیک برروی image ان عدد را بدست بیاورم . از طریق خصوصیت tag میشود اما به نظرم درست نیست
4-آیا به یک image فقط میتوان bitmapimage را نسبت داد البته در کد نویسی

مهدی فرزاد
سه شنبه 24 مرداد 1391, 08:18 صبح
سلام
برای بدست آورن Image های درون یک گرید یا یک ویندوز

static public void EnumVisual(Visual myVisual)
{
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(myVisual); i++)
{
// Retrieve child visual at specified index value.
Visual childVisual = (Visual)VisualTreeHelper.GetChild(myVisual, i);

// Do processing of the child visual object.

// Enumerate children of the child visual object.
if (childVisual is Image)
{
//Add to List

}
else
{
EnumVisual(childVisual);
}
}
}


قسمت دوم سئوال

FileStream fs = File.Open("test.jpg", FileMode.Open);

System.Drawing.Bitmap dImg = new System.Drawing.Bitmap(fs);


MemoryStream ms = new MemoryStream();


dImg.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);


System.Windows.Media.Imaging.BitmapImage bImg = new System.Windows.Media.Imaging.BitmapImage();


bImg.BeginInit();


bImg.StreamSource = new MemoryStream(ms.ToArray());


bImg.EndInit();


//img is an Image control.


img.Source = bImg;



قسمت سوم tag بهترین گزینه هست. چرا میگید درست نیست؟؟؟ پس این Tag رو برای چی گذاشتن؟!

شرلوک هلمز
سه شنبه 31 مرداد 1391, 17:44 عصر
ممنون از پاسخی که دادید
با کمک شما مشکلات من بطرف شد . البته خواندن دوباره بوسیله memorystrrem چندان جالب به نظر نمیرسد البته ظاهرا که تنها راه است به هر حال من reference ها ی wpf را به کلاس اضافه کردم و مشکل حل شد
کد گرفتن کنترل از گرید را الان باید چک کنم
یک سوال
چطور میشود string یک کنترل از نوع text را حرف به حرف رنگی کرد . به عبارت دیگر من مثلا یک textbox دارم که یک رشته را به من نمایش میدهد من میخواهم هر حرف از این رشته را در قسمت کد نویسی بنابر شرایطی که کاربر انتخاب میکند به یک رنگ در بیاورم
ممنون از توجهتان

مهدی فرزاد
چهارشنبه 01 شهریور 1391, 20:19 عصر
سلام

شماباید از کنترل RichTextBox استفاده کنید

درضمن در هر تاپیک فقط یک سئوال بپرسید