This article is currently in the process of being translated into Persian (~76% done).
Introduction to WPF panels
پنلها panels یکی از مهمترین انواع کنترل در WPF هستند. آنها به مانند یک جای نگهداری برای دیگر کنترل ها عمل می کنند و بر چیدمان کنترل ها روی پنجره یا صفحات نظارت می کتند. از آنجایی که هر پنجره فقط میتواند یک کنترل فرزند داشته باشد, از پنل ها معمولاً برای تقسیم بندی فضا به قسمت های مختلف به قسمی که بتوان در آن محدودهها یک کنترل یا پنل دیگر (که البته خودبه نوعی یک کنترل است) جای شوند استفاده می شود.
Panels come in several different flavors, with each of them having its own way of dealing with layout and child controls. Picking the right panel is therefore essential to getting the behavior and layout you want, and especially in the start of your WPF career, this can be a difficult job. The next section will describe each of the panels shortly and give you an idea of when to use it. After that, move on to the next chapters, where each of the panels will be described in detail.
Canvas
A simple panel, which mimics the WinForms way of doing things. It allows you to assign specific coordinates to each of the child controls, giving you total control of the layout. This is not very flexible though, because you have to manually move the child controls around and make sure that they align the way you want them to. Use it (only) when you want complete control of the child control positions.
پنل بسته بندی
پنل بسته بندی یا WrapPanel کنترلهای فرزند یا child را در کنار همدیگر قرار میدهد, این قرار گیری می تواند بصورت افقی horizontally که پیش فرض است یا به صورت عمودی vertically باشد, و تا جایی ادامه پیدا می کند که دیگر فضایی موجود نباشد که در این صورت به خط دیگر پیچیده و بسته بندی شده وسپس ادامه می یابد. میتوانید آنرا برای کنترلهای لیست عمودی یا افقی که بصورت خودکار در هنگام کمبود جا پیچیده میشوند به کار برید.
پنل پشته ای
پنل پشته ای یا StackPanel رفتاری بسیار شبیه پنل بسته بندی یا WrapPanel دارد, اما بجای بسته بندی کنترل فرزند که فضای خیلی زیادی را اشغال می کند , این پنل تا جایی که برای خودش جا پیدا گسترش می یابد. دقیقا مانند WrapPanel , جهت می تواند یا عمودی یا افقی باشد, اما به جای اینکه پهنا یا ارتفاع کنترل فرزند را براساس بزرگترین قطعه تنظیم کند , هر قطعه به اندازه ای که تمام فضای عمودی یا افقی را پر کند کشیده میشود. شما می توانید از پنل پشته ای هنگامی که میخواهید لیستی از کنترلها تمام فضا را بی آنکه پیچیده شوند به کار ببرید.
پنل لنگری
پنل لنگری یا DockPanel شما را قادر می سازد که بتوانید کنترل های فرزند را به قسمت بالا, پایین, چپ یا راست بچسبانید. به صورت پیش فرض اگر برای آخرین کنترل مکان لنگر در نظر نگرفته باشید, آخرین کنترل تمام فضای باقیمانده را پر خواهد کرد. شما می توانید همین عمل راه با استفاده از پنل گرید GridPanel حاصل کنید. اما برای حالتهای سادهتر, استفاده از پنل نگری آسان تر خواهد بود. پنل لنگری را هنگامی که تمایل دارید که یک یا چندین کنترل به گوشهای از پنجره چسبیده شده باشد, مثلاً برای تقسیم بندی پنجره به مکان های ویژه از آن استفاده کنید.
گرید
احتمالا گرید یا توری یکی از سخت ترین انواع پنل می باشد. گرید می تواند شامل چندین ردیف یا ستون باشد. شما ارتفاع هر ردیف یا پهنای هر ستون را تعریف می کنید که میتواند به صورت تعداد مطلق پیکسل ها باشد, یا به صورت درصدی از فضای موجود یا به صورت اتوماتیک باشد. در صورت اتوماتیک بودن هر ردیف یا ستون اندازه خودش را بر اساس محتویات تنظیم خواهد کرد. هنگامی از استفاده کنید که نمی توانید از پنل های دیگر برای انجام آن منظور استفاده ببرید. مثلاً هنگامی که چندین ستون احتیاج دارید یا مواقعی که آنها در ترکیب با پنل های دیگر هستند.
گرید یکسان
گرید یکسان یا UniformGrid بمانند گرید با امکان داشتن چندین ردیف یا ستون است اما با یک فرق مهم یکسان بودن اندازه ستونها وردیفها. از گرید یکسان هنگامی نیاز به گرید با رفتارهای همسان بدون نیاز به تعیین اندازه های متفاوت در ردیف یا ستون دارید استفاده ببرید.