مدیریت طرح بندی و چیدمان عناصر
در دات نت فریم ورک نسخه های 1.0 و 1.1، دو خاصیتی که در چیدمان عناصر بر روی فرمها، مؤثر بودند، خواص Anchor و Dock بودند. توسط این دو خاصیت میتوانستید، کنترلها را بر روی فرم خود، چنان تنظیم کنید، که در صورت تغییر سایز فرم، کنترلها نیز به تناسب آن، تغییر سایز بدهند و یا محل قرار گیری آ نها به صورت پویا تغییر کنید. اما باز هم این خواص جواب گوی نیازهای شما به صورت کامل نبودند. به ویژه زمانی که کنترلهای خود را به صورت پویا و در زمان اجرای برنامه، ایجاد میکردید، این مسئله بیشتر باعث عذاب و رنجش بود. به صورتی که گاها نیاز به کد نویسی های بسیاری، برای چیدمان کنترلها، بر روی فرم بود.
دردات نت فریم ورک 2.0 عناصر دیگری اضافه شدند، که میتوانستند، چیدمان عناصر را تا حدی، کنترل نمایند. یکی از این کنترلها، کنترل FlowLayoutPanel بود (است). اما این کنترلها نیز قابلیتها و کارایی خوبی نداشتند. و دلیل دیگر آن این بود که این کنترلها به صورت یک افزونه وارد دات نت 2.0 شده بودند و در واقع جزء هسته اصلی فرمهای ویندوزی نیستند و به واقع یک افزونه برای آنها به شمار میآیند. مانند کنترلهای بسیاری که شرکتهای ثالث نوشتهاند و مینویسند. علاوه بر این، اساس این کنترلها نیز بر پایه مکان قرار گرفتن کنترلها میباشد، که این خود، نیز به نوعی محدودیت محسوب میشود.
تکنولوژی WPF سیستم جدیدی را از پایه برای شما فراهم میکند که به شما اجازه ایجاد برنامههایی را میدهد که وابسته به سایز و یا رزولوشن صفحه نمایش نباشد. همانطور که قبلاً نیز گفته شد، تعیین سایز و محل قرار گیری کنترلها به صورت مشخص و ثابت، کارایی برنامه را به شدت کاهش میدهد ( البته در مواردی اجتناب ناپذیر است. به عنوان مثال زمانی که از Canvas استفاده میکنید، ناچار هستید که محل قرار گیری کنترلهای روی آن را صراحتاً تعیین کنید). راه حل WPF برای اینکه بتوان بر محل قرارگیری و اندازه کنترلها نظارت کامل داست، استفاده کردن از کنترلهایی است که بدین منظر ایجاد شدهاند. چند نکته اصلی و مهم در پشت مفهوم فلسفه چیدمان و قالب بندی در WPF وجود دارد که تیتر وار بیان میشوند:
تمامی کنترلهای قالب بندی (چیدمان عناصر) WPF از کنترل پایهای به نام Panel ارث بری میکنند. Panel ها یکی از مهمترین انواع کنترل در WPF محسوب میشوند که آنها را میتوان ظرفی برای کنترلهای دیگر تصور کرد. از آنجایی که یک Window فقط میتواند شامل یک کنترل باشد، بنابراین با استفاده از پنل ها میتوانیم صفحه را به نواحی مختلف تقسیم کنیم و در هر ناحیه کنترلهای مورد نظر خود را قرار دهیم. کنترلهای اساسی قالب بندی در WPF عبارتند از:
- Stack Panel
- Canvas
- Dockpanel
- WrapPanel
- UniformGrid
- Grid
در زیر، توضیح مختصری در مورد هر یک از عناصر بالا، داده شده است:
کنترل | توضیح |
StackPanel | همانطور که از نام آن مشخص است، این کنترل، عناصر را به صورت پشتهای مرتب میکند. به دو صورت افقی و عمودی میتوانید کنترلها را قرار دهید. |
Canvas | این کنترل اجازه قرار گرفتن کنترلها را در مکان مشخص و ثابتی میدهد. پس از قرار گرفتن عناصر بر روی این کنترل، مکان آنها برای همیشه ثابت میماند. |
DockPanel | این کنترل عملکردی شبیه به خاصیت Dock در کنترلهای دات نت فریم ورک 2.0 را دارد. با این کنترل میتوانید، عناصر خود را نسبت به لبههای مختلف آن تنظیم نمایید. |
WrapPanel | این کنترل، عناصر را به صورت سطری و ستونی تا جایی که امکان داشته باشد، قرار میدهید. در حالت سطری، کنترلها تا جایی که بتوانند در یک سطر قرار میگیرند. اگر فضای مورد نیاز کنترلها از فضای موجود در یک سطر بیشتر باشد، بقیه کنترلها به سطر بعدی منتقل میشوند. در حالت ستونی نیز عملی مشابه، انجام میگیرد. |
UniformGrid | این کنترل شبیه به کنترل Grid میباشد. با این تفاوت که در این کنترل، سایز تمامی سلولها یکسان میباشد. |
Grid | این کنترل، از پرکاربردترین کنترلهای Container میباشد. این کنترل با ایجاد سطرها و ستونهایی به شما امکان قرار دادن عناصر خود را در سلول مشخصی از ان میدهد. این کنترل شبیه به کنترل TableLayoutPanel در دات نت فریم ورک 2.0 میباشد. |
نویسنده : مهدی کیانی از سایت barnamenevis.org
سپاس.درخصوص Ribon کنترلها و روش استفاده آنها در wpf، مطلبی ارائه نمایید