View Full Version : سوال: كنترل Picturebox كه transparent باشه!
mahboube
سه شنبه 04 آبان 1389, 12:58 عصر
سلام
من يك كنترل Picturebox ميخوام كه transparent باشه.
يعني اگر دوتاازاين كنترل رو روي هم قرا داديم عكس زيري هم نمايش داده بشه:
يه كنترل wpf باابن خصوصيت.
توي اين تاپيك كامل توضيح دادم.ممنون
http://barnamenevis.org/forum/showthread.php?t=254597
مهدی فرزاد
سه شنبه 04 آبان 1389, 13:44 عصر
سلام
توي WPF كنترل Image براي نمايش عكس هست
كافيه اين كنترل رو به برنامه اضافه كني بعد Opacity كنترل رو كم كني مثلا 50%
حالا هر عكسي كه توش بگذاري پشتش معلوم ميشه و transparent هست
<Image x:Name="image" Height="88" Margin="199,105,300,0" VerticalAlignment="Top" Opacity="0.5"/>
mahboube
سه شنبه 04 آبان 1389, 15:22 عصر
مرسي اينو پيدا كردم
حالا يك سوال ديگه دارم.چون من بايد به شكل usercontrolاستفاده كنم ازش توي winapp.حالا يك مشكل دارم.
من مثلا 10تا image دارم توي كنترلم.كه توي يك فرم هستند.حالا وقتي يخوام به اين كنترل ها دسترسي داشته باشم به اينشكل عمل ميكنم:
userControl13.img0.Opacity = .7;
حالا ميخوام به 10 تاش كه از 0 تا 9 هستند به صورت زير(اين براي كنترل هاي معمولي winapp هست دسترسي داشته باشم:
for (int l = 0; l < 40; l++)
{
foreach (PictureBox pic in f2.Controls)
{
if (pic.Name == "picB" + (l).ToString())
{
pic.Image = bitmap_picB[l];
break;
}
}
}
كه البته يك همچين چيزي پيدا كردم ولي نميدونم چطوري ازش استفاده كنم:
f1.userControl13.FindName("img")
اين خيلي واجبه .مرسي.
مهدی فرزاد
سه شنبه 04 آبان 1389, 15:56 عصر
فکرکنم این باشه
var img1 = f1.UserControl13.FindName("Img") as Image;
img1.Source = ......;
mahboube
سه شنبه 04 آبان 1389, 16:03 عصر
من اينم انجام دادم ولي اين ارور رو ميده:
Object reference not set to an instance of an object.
چون داره يك Object ي از usercontrol ميسازه نه از imageتوي usercontrol.
مهدی فرزاد
سه شنبه 04 آبان 1389, 16:14 عصر
شما برای کنترل Image در یوزر کنترل یک اسم بگذار
مثلا
<Image x:Name="IMG1" Margin="0,0,26,20"/>
و بعد
UserControl1 u = new UserControl1();
u.IMG1.Source = ....;
و اگه از قبل یوزر کنترل رو در طراحی برنامه اضافه کردی فقط بنویس
اسم یوزر کنترلت.IMG1.Source = ....;
mahboube
سه شنبه 04 آبان 1389, 16:18 عصر
شما برای کنترل Image در یوزر کنترل یک اسم بگذار
مثلا
<Image x:Name="IMG1" Margin="0,0,26,20"/>
و بعد
UserControl1 u = new UserControl1();
u.IMG1.Source = ....;
و اگه از قبل یوزر کنترل رو در طراحی برنامه اضافه کردی فقط بنویس
اسم یوزر کنترلت.IMG1.Source = ....;[/
اينو كه ميدونم!!!
اين img+i.tostring() ،متغيره!يعني 10 تا img از 0 تا 9 دارم كه بايد توي فرم ديگه بهشون دسترسي داشته باشم.
mahboube
سه شنبه 04 آبان 1389, 16:21 عصر
ببين بايد تو اين كد:
var Image = f1.userControl13.FindName("img") as Image;
image بايد از نوع IMAGE ،WPF تعريف بشه.
بعد يه سوال اينAS يه اشاره گر ايجاد ميكنه ديگه؟كپي كه نمي كنه!!
مهدی فرزاد
سه شنبه 04 آبان 1389, 16:25 عصر
اينو كه ميدونم!!!
اين img+i.tostring() ،متغيره!يعني 10 تا img از 0 تا 9 دارم كه بايد توي فرم ديگه بهشون دسترسي داشته باشم.
اگه برای دهتاشون اسم بگذاری مشکلی پیش میاد؟؟؟
میتونی از Property استفاده کنی و برای یوزر کنترلت Property تعریف کن که با مقدار گرفتنش Image هات تغییر کنن
mahboube
سه شنبه 04 آبان 1389, 16:46 عصر
خب من برا 10تاشون كه اسم ميزارم.
پرورپرتيو نفهميدم.چطوري؟
mahboube
سه شنبه 04 آبان 1389, 16:59 عصر
خب اين يك راهشه كه تو خود يوزركنترل كدشو بنويسم ولي من ميخاستم از يه فرم ويندوز باشه:
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
for (int i = 0; i < 2; i++)
{
// if (f1.userControl13.FindName("img0").GetType() == typeof(Image))
//{
var Image = this.FindName("img"+i.ToString()) as Image;
Image.Opacity = .1;
//}
}
}
مهدی فرزاد
سه شنبه 04 آبان 1389, 19:36 عصر
بهتر دقیق بگید میخواید چه کاری انجام بدید
احساس میکنم دارید راه رو اشتباه میرید
چه لزومی داره با کد نویسی Opacity رو تنظیم کنید؟؟؟
هدف برنامه شما چیه؟؟
mahboube
پنج شنبه 06 آبان 1389, 11:15 صبح
فقط Opacity نبود كلا ميخواستم با كد image هامو ست كنم.چون عكسامم با كد ميگيرم.
راهش همين بود كه گفتم.توخودش بايد بنويسم.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.