PDA

نسخه کامل مشاهده نسخه کامل : سوال در مورد رسم نیم دایره path در canvas



hhojjatt
04-11-2009, 13:13
من با کد زیر می خوام یک نیم دایره در canvas رسم کنم ولی نمیشه به نظر شما ایراد ان کجاست ممنون

public void arcdraw(double heigth, double width, System.Windows.Thickness tn)
{
Color c = new Color();
c.A = 255;
c.B = 0;
c.G = 0;
c.R = 0;
Path pat = new Path();
pat.Height = heigth;//50
pat.Width = width;//50
pat.Stroke = new SolidColorBrush(c);
pat.Margin = tn;
pat.StrokeThickness = 0.4;
cannemodar.Children.Add(pat);
}


tn.left=50,tn.top=50

_H2_
04-11-2009, 16:42
سلام
چندان WPF بلد نیستم ولی از نیمچه چیزهایی که میدانم و از کد شما بر می آید ...
شما خصیصه Data را پرنکرده اید و بالاخره باید چیزی در Data شی Path بریزید تا چیزی نمایش داده شود.

مثلاً این کد یک بیضی یا دایره رسم میکند:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
موفق باشید.

hhojjatt
04-11-2009, 17:01
دوست عزیز متشکرم ولی یک دایره کامل کشید به نظرت چیکار کنم نیم دایره بکشه به نظرت دستور دیگه ای داره می خوام نیم دایره بکشم

_H2_
05-11-2009, 00:43
سلام
اول لازم میدانم، مجدد تاکید کنم که اطلاعاتی خوب در مورد WPF ندارم و چیزی که بیان میکنم، لزوماً راه حل مناسب و تنها راه نیست نیست و شاید راه حل های خیلی ساده تر و قوی تر و زیبا تری موجود باشد.

من به دو صورت موفق به رسم نیم دایره شدم ...
- اول با PathGeometry !
راه حل پر کدی است! و تقریباً خودتان باید دایره را در نقاط نزدیک به هم رسم کنید! بیخیال!

- دوم با CombinedGeometry !
یعنی یک دایره رسم کردم و بعد یک مربع را از نیمه پایین ان کم کردم!

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

با توجه به اطلاعات بسیار بسیار اندک WPF ام، گمان نمیکنم کمک بیشتری کنم.
موفق باشید.

mahdi7s
06-11-2009, 13:00
با سلام
بهتر است برای طراحی در WPF از XAML استفاده کنید که هم آسون تره و هم شهودی تر چون هرچی می نویسید
نتیجه اش را همون لحظه دارید می بینید.
من هم چندان به این WPF وارد نیستم ولی تا اندازه ای که بتوانم کمک می کنم.
کدهای XAML زیر را در بین تگ Grid در محیط ویرایش XAML یک برنامه ی WPF جدید وارد کنید.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
البته برای رسم یک نیم دایره کدهای بین تگ Path.Data کافی است و کدهای بین تگ Path.Fill فقط برای رنگ آمیزی قشنگ تر این شکل استفاده شده.

mahdi7s
06-11-2009, 13:05
در تاپیک دیگری نحوه کشیدن یک کمان را خواسته بودید که چون کدش مثل همین نیم داره هست همینجا میگم.

برای رسم کمان کافیه خصیصه ی IsClosed (در تگ PathFigure ) را در کد بالا False کنید.