نمودار پای(PieChart) در WPF

برای برنامه‌نویسی در حوزه اطلاعات در بیشتر زمان‌ها نیاز به تهیه انواع نمودارها از جمله نمودارپای(PieChart)، میله‌ای(BarChart)، خطی(LineChart) و ... می‌باشد، زیبای یک برنامه به وجود همین نمودارها وابسته می‌باشد چراکه فقط با یک نگاه می‌تواند اطلاعات بسیاری را از یک نمودار دریافت کرد. ابزارهای مختلفی برای تولید این نمودارها موجود است برای نمونه اکسل(Excel)، پاوربی‌آی(PowerBI)، کلیک‌ویو(Qlikview) و ... اما همه این ابزارها خارج از محیط برنامه‌نویسی‌مان هستند و استفاده از نمودارهای تولیدشده توسط این نرم‌افزارها درون برنامه خودمان امکان‌پذیر نیست. در محیط برنامه‌نویسی ویژوال‌استودیو نیز می‌توان از ابزارهای تولید نمودار استفاده کرد مانند wpfToolkit، LiveChart، ScottPlot، oxyplot، Telerik، DevExpress، Syncfusion، SciChart WPF و بسیاری دیگر از این نوع ابزارها موجود است که برخی رایگان و برخی مانند تلریک را باید خریداری نمود. هرکدام از این ابزارها دارای قابلیت‌ها و محدودیت‌های خودشان می‌باشند. در این مقاله هدف ساخت یک نمودارپای بصورت مستقل از این ابزارها و فقط با کمک WPF می‌باشد. قابلیت‌هایی چون لیبل(lable)، دونات‌شکل(Doughnut)، خروج‌ازمرکز(Indent) و ... در آن درنظر گرفته‌شده که شما نیز می‌توانید قابلیت‌های مدنظر خودتان را به آن بیفزایید.

  • 641
  • 0
ادامه مطلب

کانواس با قابلیت اسکرول و خطکشی در WPF

برنامه‌نویس‌هایی که برنامه برای طراحی گزارش‌ها تهیه‌می‌کنند، نیازمند یک محیطی هستند که بتوانند درون آن اشیا را قرار داده و جابجا نمایند و یا ابعاد آن را تغییر داده و شکل را دوران بدهند، یکی از خصوصیت‌ها در جابجایی‌ها نیاز به هم‌تراز کردن اشیا با هم می‌باشد. پانل کانواس(Canvas) محیط خوبی برای طراحی می‌باشد اما این قابلیت که بتوان با آن اشیا را هم‌تراز کرد درونش قرار ندارد، در ضمن با چیدن اشیا در کانواس ابعاد آن تغییر می‌کند اما قابلیت اسکرول ندارد، لذا شما همیشه به اندازه پنجره‌ای که کانواس درون آن قرار دارد را مشاهده می‌کنید(در واقع محدوده‌ قابل دیدن ابعاد کانواس است). برای اینکه بتوان اشیا را هم‌تراز کرد حداقل باید صفحه طراحی بصورت خط کشی شده باشد و درصورتی که اشیا جابجا شوند و از محدوده ابعاد کانواس خارج شوند باید بتوان با اسکرول آن‌ها را مشاهده‌نمود.برای قابلیت اسکرول‌کردن از یک کنترل به نام اسکرول‌ویوور(ScrollViwer) استفاده‌می‌گردد.

  • 479
  • 0
ادامه مطلب

تعریف یک ویژگی‌وابسته(DependencyProperty) در WPF

پیش از شروع لازم است تعریفی از ویژگی داشته‌باشیم، یک ویژگی، خاصیت و یا پراپرتی(Property) {در تمامی این مقاله ویژگی به معنی پراپرتی می‌باشد} یک مکانیزم انعطاف‌پذیر برای خواندن، نوشتن و یا محاسبه یک فیلد یا متغیر می‌باشد. ویژگی را به‌گونه‌ای می‌توان استفاده کرد که گویی یک متغیر عمومی است، یعنی مانند تعریف یک متغیرعمومی(Public) در یک کلاس عمل‌می‌کند. اما در متغیرعمومی امکان کنترل داده ورودی وجود ندارد، برای نمونه فرض کنید در کلاس شخص(Person) یک متغیرعمومی از نوع اعداد صحیح برای ورود اطلاعات قد افراد تعریف شده باشد، اما می‌دانیم قد افراد نمی‌تواند بیش از 250سانتیمتر باشد، ولی بدلیل تعریف عمومی آن، امکان کنترل قد برای جلوگیری از ورود اطلاعات نادرست نیست. اما اگر همین متغیر را به‌صورت یک ویژگی تعریف‌کنیم، امکان اعتبارسنجی(Validate) برای آن وجود دارد. در برنامه‌نویسی استاندارد(شاید استاندارد واژه مناسبی برای آن نباشد) وقتی می‌خواهید یک ویژگی تعریف‌کنید نخست یک متغیر خصوصی(Private variable) تعریف‌می‌کنید و با دستورهای Get و Set مقادیر ویژگی را تنظیم(Set) کرده و یا(Get) برمی‌گردانید(به این ویژگی‌ها CLR Property که مخفف Common Language Runtime Property است گفته‌می‌شود).

  • 976
  • 0
ادامه مطلب

بدست‌آوردن تمپلیت ابزارها‌ی تلریک و کنترل‌ها در WPF

زیبایی در طراحی ابزار یکی از صفات بارز در WPF می‌باشد، داشتن کنترل‌هایی همانند کنترل‌های موجود در برنامه‌نویسی فرم‌بیس از نظر کارایی مناسب است اما بدلیل استفاده WPF از دایرکت‌ایکس در پس‌زمینه اگر بتوان کنترل‌های گرافیکی زیباتر و جذاب‌تر با همان کارایی ایجاد کرد کاری‌است بسیار دلچسب. برنامه‌نویس‌هایی که با ابزارها و کنترل‌های تلریک آشنایی دارند, حتما RadToggleSwitchButton را دیده‌اند، یک کنترل زیبا بصورت دکمه خاموش و روشن که مانند کلید لامپ می‌باشد اما همانند یک ToggleButton در WPF عمل‌می‌کند، و یا یک RadPathButton که به شما امکان تهیه یک دکمه(Button) با شکل دلخواه(با استفاده از PathGeometry) را می‌دهد و کارایی آن دقیقا معادل Button در WPF است و یا ابزارهای ساخت منوبار و تولزبار و ... که همگی بصورت بسیار زیبا در تلریک یافت می‌شود. این قابلیت‌ها فقط بدلیل محیط گرافیکی در WPF امکان‌پذیر است. اما برای تهیه هرکدام از این کنترل‌ها باید تمپلیت(Template) آن‌ را ساخت، این‌کار چندان ساده نیست و شاید حتی دربرخی موارد غیرممکن به نظربرسد. اما اگر بشود تمپلیت یک کنترل را بدست‌آورد براحتی می‌توان نمونه مشابه(با کمی تفاوت) ایجاد کرد. در ادامه نحوه بدست‌آوردن تمپلیت یک کنترل دلخواه را خواهید دید.

  • 404
  • 0
ادامه مطلب