کنترل Menu در WPF
Menu کنترلی است که امکان نمایش منو به کاربر را می دهد. کنترل Menu یک نوع ItemsControl است و در نتیجه می توان مجموعه ای از عناصر دیگر را شامل شود. در تصویر زیر می توانید سلسله مراتب مربوط به ارث بری این کنترل را مشاهده کنید.
خاصیت های پر استفاده
در جدول زیر می توانید خاصت های پر استفاده مربوط به Menu را به همراه توضیح مختصری در مورد هر کدام مشاهده کنید.
ردیف | توضیحات |
1 | Background به منظور گرفتن یا تنظیم یک brush برای رنگ پس زمینه کنترل استفاده می شود (به ارث رسیده از Control). |
2 | BorderThickness به منظور گرفتن یا تنظیم میزان ضخامت border کنترل استفاده می شود (به ارث رسیده از Control). |
3 | Height به منظور گرفتن و یا تنظیم میزان ارتفاع کنترل استفاده می شود (به ارث رسیده از FrameworkElement). |
4 | IsMainMenu به منظور گرفتن یا تنظیم مقداری استفاده می شود که مشخص کننده این است که آیا منو جاری منوی اصلی است یا خیر. منوی اصلی اعلان مربوط به فعال شدن را دریافت می کند. |
5 | Items به منظور گرفتن مجموعه ای از داده ها که برای تولید محتوای کنترل استفاده می شوند، کاربرد دارد (به ارث رسیده از ItemsControl). |
6 | ItemsPanel به منظور گرفتن یا تنظیم قالبی برای نمایش آیتم ها استفاده می شود (ItemsControl). |
7 | ItemsSource به منظور گرفتن یا تنظیم یک شیء به عنوان منبع داده برای تولید محتوای ItemsControl استفاده می شود (به ارث رسیده از ItemsControl). |
8 | VerticalContentAlignment تراز عمودی کنترل را در داخل کنترل والد مشخص می کند (به ارث رسیده از FrameworkElement). |
9 | Width به منظور گرفتن و یا تنظیم میزان عرض کنترل استفاده می شود (به ارث رسیده از FrameworkElement). |
مثال
برای درک بهتر یک پروژه WPF با نام WPFMenuControl ایجاد کرده و آن را به شکل زیر تغییر دهید.
محتوای فایل MainWindow.xaml:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | <Window x:Class = "WPFMenuControl.MainWindow" xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d = "http://schemas.microsoft.com/expression/blend/2008" xmlns:mc = "http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local = "clr-namespace:WPFMenuControl" mc:Ignorable = "d" Title = "MainWindow" Height = "350" Width = "604"> <Grid> <Menu HorizontalAlignment = "Left" VerticalAlignment = "Top" Width = "517"> <MenuItem Header = "File"> <MenuItem Header = "Item 1" HorizontalAlignment = "Left" Width = "140" Click = "MenuItem_Click" /> <MenuItem Header = "Item 2" HorizontalAlignment = "Left" Width = "140" Click = "MenuItem_Click" /> <Separator HorizontalAlignment = "Left" Width = "140" /> <MenuItem Header = "Item 3" HorizontalAlignment = "Left" Width = "140" Click = "MenuItem_Click"/> </MenuItem> <MenuItem Header = "Edit"> <MenuItem Header = "Item 1" HorizontalAlignment = "Left" Width = "140" Click = "MenuItem_Click1" /> <MenuItem Header = "Item 2" HorizontalAlignment = "Left" Width = "140" Click = "MenuItem_Click1" /> <Separator HorizontalAlignment = "Left" Width = "140" /> <MenuItem Header = "Item 3" HorizontalAlignment = "Left" Width = "140" Click = "MenuItem_Click1" /> </MenuItem> <MenuItem Header = "View"> <MenuItem Header = "Item 1" HorizontalAlignment = "Left" Width = "140" Click = "MenuItem_Click2" /> <MenuItem Header = "Item 2" HorizontalAlignment = "Left" Width = "140" Click = "MenuItem_Click2" /> <Separator HorizontalAlignment = "Left" Width = "140" /> <MenuItem Header = "Item 3" HorizontalAlignment = "Left" Width = "140" Click = "MenuItem_Click2"/> </MenuItem> </Menu> </Grid> </Window> |
محتوای فایل MainWindow.xaml.cs:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | using System.Windows; using System.Windows.Controls; namespace WPFMenuControl { /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void MenuItem_Click(object sender, RoutedEventArgs e) { MenuItem item = sender as MenuItem; this.Title = "File: " + item.Header; } private void MenuItem_Click1(object sender, RoutedEventArgs e) { MenuItem item = sender as MenuItem; this.Title = "Edit: " + item.Header; } private void MenuItem_Click2(object sender, RoutedEventArgs e) { MenuItem item = sender as MenuItem; this.Title = "View: " + item.Header; } } } |
زمانی که مثال فوق را کامپایل و اجرا کنید، خروجی زیر را تولید خواهد کرد:
هیچ نظری ثبت نشده است