PDA

View Full Version : سوال کشیدن مستعطیل در wpf



hhojjatt
جمعه 08 آبان 1388, 09:16 صبح
می خواهم یک مستعطیل روی canvas با حرکت ماوس رسم کنم وقتی ماوس را به سمت راست می کشم مستطیل بزرگتر می شود و مستطیل قبلی باقی می ماند چطوری قبلی (کوچکتر )را پاک کنم canvas.children.removat() نشد چون اصلتا دیگه چیزی نشون نمیده ممنون



private void cannemodar_MouseMove(object sender, MouseEventArgs e)
{
if (e.LeftButton == MouseButtonState.Pressed)
{
double width, heigth;
if (e.GetPosition(cannemodar).X > mousex)
width = e.GetPosition(cannemodar).X - mousex;
else
width= mousex - e.GetPosition(cannemodar).X;
if (e.GetPosition(cannemodar).Y > mousey)
heigth = e.GetPosition(cannemodar).Y - mousey;
else
heigth = mousey - e.GetPosition(cannemodar).Y;


tndrawshekl.Top = mousey;
tndrawshekl.Left = mousex;


if (strrasm == "rectangle")
{
drawellips(heigth,width, tndrawshekl);


this.InvalidateVisual();


cannemodar.Children.RemoveAt(cannemodar.Children.C ount-1 );


}
}


}
}

رضا عربلو
جمعه 08 آبان 1388, 14:23 عصر
فکر متد RemoveAt از ایندکس 0 شروع می شود یعنی اولین شی ایندکس 0 و دومین شی ایندکس 1 و ... دارد بنابراین برای اینکه یکی مونده به آخرین را حذف کنی به جای


cannemodar.Children.RemoveAt(cannemodar.Children.C ount-1 );

بنویس


cannemodar.Children.RemoveAt(cannemodar.Children.C ount-2 );

hhojjatt
جمعه 08 آبان 1388, 17:14 عصر
ممنون دوست عزیز ولی من هم منظورم پاک کردن و دوباره رسم کردن اخرین شکل است نه یکی مونده به اخر برای همین از -1 استفاده کردم

hhojjatt
جمعه 08 آبان 1388, 17:44 عصر
تشکر دوست عزیز دقت نکردم با -2 کارم راه افتاد