کنترل Window

کنترل Window، پنجره‌ای است که شما در برنامه‌هایتان، کنترل‌های دیگر را بر روی آن قرار می‌دهید. شما می‌توانید در یک برنامه بیش از یک Window داشته باشید. وقتی که یک برنامه WPF ایجاد می‌کنید اولین کنترلی که ایجاد می‌شود، همین Window است. برای توضیح بهتر، یک برنامه جدید ایجاد کنید. بعد از ایجاد برنامه، با صفحه‌ای به صورت زیر مواجه می‌شوید:

در قسمت کدنویسی XAML این صفحه، کدهایی به صورت زیر را مشاهده می‌کنید:

 1: <Window x:Class="WindowDemo.MainWindow"
 2:         xmlns       ="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
 3:         xmlns:x     ="http://schemas.microsoft.com/winfx/2006/xaml"
 4:         xmlns:d     ="http://schemas.microsoft.com/expression/blend/2008"
 5:         xmlns:mc    ="http://schemas.openxmlformats.org/markup-compatibility/2006"
 6:         xmlns:local ="clr-namespace:WindowDemo"
 7:         mc:Ignorable="d"
 8:         Title="MainWindow" Height="200" Width="300">
 9:     <Grid>
10: 
11:     </Grid>
12: </Window>

در کد بالا، ما دو تگ Windows و Grid داریم که در مورد Grid در درس‌های آینده توضیح می‌دهیم. همانطور که احتمالاً متوجه شده‌اید، با ایجاد برنامه، خواص و مقادیر پیشفرضی به کنترل Window اختصاص داده می‌شود (Tilte ،Height ،Width). همانطور که قبلاً هم توضیح داده شد، هر تگ می‌تواند تعدادی خاصیت داشته باشد که آن را در تگ باز می‌نویسیم. برای اینکه خاصیت‌های دیگری را هم به Window اضافه کنیم، یک Space یا Enter می‌زنیم و خاصیت بعدی را می‌نویسیم. حال می‌خواهیم تعدادی از مهم‌ترین و کاربردی‌ترین خاصیت‌های کنترل Window را مورد بررسی قرار دهیم. این خاصیت ها را در خط 8 کد بالا، اعمال می کنیم.

 

خاصیت‌های Window

خاصیت Title به شما اجازه می دهد که یک عنوان را برای پنجره خود تعیین کنید. برای مثال در کد بالا عنوان MainWindow در نظر گرفته شده است:

Title="MainWindow"

با استفاده از این دو خاصیت Width و Height می‌توان عرض و ارتفاع پنجره را مشخص کنید:

Title="MainWindow" Height="200" Width="300"

خاصیت ResizeMode، مشخص می‌کند که، کاربر چه تغییراتی می‌تواند بر روی سایز پنجره، اعمال کند. مقدار پیش فرض آن CanResize است که به کاربر اجازه می‌دهد تا با drag کردن لبه‌های پنجره، سایز آن را به اندازه دلخواه تغییر دهد و همچنین بتواند از دکمه‌های Minimize و Maxmize برای کوچک کردن و بزرگ کردن پنجره استفاده کند:

Title="MainWindow" Height="200" Width="300" ResizeMode="CanResize"

مقدار CanResizeWithGrip همان قابلیت‌های CanResize را دارد با این تفاوت که یک دستگیره در گوشه پایین سمت راست پنجره نمایان می‌شود:

در صورتی که مقدار CanMinimize را برای این مشخصه در نظر بگیریم به کاربر اجازه می‌دهد تا بتواند پنجره را Minimize کند ولی اجازه Maximize کردن و تغییر اندازه پنجره با استفاده از drag کردن را ندارد. NoResize نیز به کاربر اجازه هیچ گونه تغییری در سایز پنجره را نمی‌دهد. از خاصیت ShowInTaskbar می‌توان جهت نمایش یا عدم نمایش آیکون برنامه در Taskbar ویندوز استفاده کرد. مقدار پیش فرض این مشخصه true است اما اگر مقدار آن را به false تغییر دهید، آیکون پنجره شما، در منوی Taskbar ویندوز نمایش داده نخواهد شد:

Title="MainWindow" Height="200" Width="300" ShowInTaskbar="False"

این گزینه می‌تواند زمانی که در برنامه چندین پنجره به صورت همزمان باز هستند، مورد استفاده قرار گیرد. با استفاده از خاصیت Topmost می‌توان کاری کرد که پنجره برنامه بر روی همه پنجره‌ها قرار بگیرد. مقدار پیش فرض آن false است ولی اگر مقدار آن را به true تغییر دهید، پنجره شما بر روی پنجره‌های دیگر قرار خواهد گرفت مگر اینکه آن را Minimize کنید. به عبارت دیگر اگر چند پنجره به صورت همزمان باز باشد و مقدار Topmost یکی از آن‌ها را برابر با true قرار دهید، آن پنجره بر روی سایر پنجره‌ها قرار خواهد گرفت:

Title="MainWindow" Height="200" Width="300" Topmost="True"

برنامه را بعد از تغییر خاصیت Topmost به true، اجرا کنید. حال اگر وارد MyComputer شوید و یا هر برنامه دیگری در ویندوز را اجر کنید، همه آنها در زیر پنجره برنامه‌تان قرار می‌گیرند.

با استفاده از خاصیت WindowStartupLocation می‌توان مکان پنجره را زمانی که برای نخستین بار نمایش داده می‌شود، مشخص کرد. مقدار پیش فرض آن Manual است و مکان پنجره را با استفاده خاصیت‌های Top و Left مشخص می‌کند. برای مثال اگر مقدار WindowStartupLocation را برابر Manual و همچنین Top را برابر 20 و Left را برای 30 قرار دهیم، زمانی که پنجره نمایش داده می‌شود، فاصله آن از گوشه بالا، سمت چپ نمایشگر، 20 پیکسل از بالا و 30 پیکسل از سمت چپ خواهد بود.

اگر مقدار این خاصیت را برابر CenterScreen قرار دهیم، همانطور که از نام آن هم مشخص است پنجره در وسط صفحه مانیتور نمایش داده می‌شود. همچنین مقدار CenterOwner باعث می‌شود تا پنجره در وسط Owner خود نمایش داده شود. زمانی که یک پنجره در داخل یک پنجره دیگه ظاهر می‌شود به پنجره پدر اصطلاحاً Owner گفته می‌شود.

خاصیت WindowState مشخص می‌کند پنجره در کدام یک از حالت‌های Normal ،Minimized و Maximized باشد. اگر مقدار این خاصیت را برابر Maximized قرار دهیم، با اجرای برنامه، پنجره در حالت Full Screen نمایش داده می‌شود:

Title="MainWindow" Height="200" Width="300" WindowState="Maximized"

مقدار پیش فرض این خاصیت Normal است. آخرین خاصیتی که در این درس به ان می پردازیم خاصیت Icon است که به شما اجازه می‌دهد تا یک آیکون را برای پنجره خود در نظر بگیرید. این آیکون معمولاً در گوشه بالا سمت چپ پنجره قرار می‌گیرد. مطابق تصویر زیر، برای اضافه کردن آیکون، ابتدا یک آیکون از اینترنت دانلود کرده و سپس در پنجره Solution Explorer بر روی نام پروژه راست کلیک کرده و از منوی Add بر روی گزینه Existing Item کلیک کرده و آیکون مورد نظر خود را انتخاب کنید. پس از اینکار در پنجره Solution Explorer آیکون مورد نظر شما اضافه می‌شود:

سپس مقابل خاصیت Icon، نام آیکونی که اضافه کرده بودیم را، می‌نویسیم:

Title="MainWindow" Height="200" Width="300" Icon="windows-icon.png"

حال برنامه را اجرا می‌کنیم و مشاهده می‌کنیم که آیکون مورد نظر ما اضافه شده است: