کنترل ContextMenu در WPF – آموزش WPF

  • پنجشنبه ۹ اردیبهشت ۱۴۰۰
  • بازدید ۳۷ نفر

wpf contextmenu 10331 تصویر

کنترل ContextMenu در WPF

ContextMenu یک منو Pop-up است که به کنترل اجازه می دهد تا قابلیت های مربوط به خودش را به صورت یک منوی زمینه ای نمایش دهد. در تصویر زیر می توانید سلسله مراتب مربوط به ارث بری کنترل ContextMenu را مشاهده کنید.

wpf contextmenu 10331 1 تصویر

خاصیت های پرکاربرد

در جدول زیر می توانید خاصت های پر استفاده مربوط به ContextMenu  را به همراه توضیح مختصری در مورد هر کدام مشاهده کنید.

ردیفتوضیحات
۱

Background

به منظور گرفتن و یا تنظیم رنگ پس زمینه کنترل استفاده می شود (به ارث رسیده از Control).

۲

BorderThickness

به منظور گرفتن و یا تنظیم میزان ضخامت حاشیه کنترل استفاده می شود (به ارث رسیده از Control).

۳

ContextMenu

به منظور گرفتن یا تنظیم منوی زمینه ایی که در هنگام درخواست منوی زمینه ای باید نمایش داده شود، استفاده می شود (به ارث رسیده از FrameworkElement).

۴

FontFamily

به منظور گرفتن و یا تنظیم نوع فونت محتوای کنترل استفاده می شود (به ارث رسیده از Control).

۵

FontSize

به منظور گرفتن و یا تنظیم اندازه فونت محتوای کنترل استفاده می شود (به ارث رسیده از Control).

۶

FontStyle

به منظور گرفتن و یا تنظیم استایل فونت محتوای کنترل استفاده می شود. مقادیر قابل تنظیم عبارت اند از Normal، Italic و Oblique (به ارث رسیده از Control).

۷

FontWeight

به منظور گرفتن و یا تنظیم میزان ضخامت فونت استفاده می شود (به ارث رسیده از Control).

۸

Foreground

به منظور گرفتن و یا تنظیم رنگ پیش زمینه (رنگ رویی) استفاده می شود (به ارث رسیده از Control).

۹

GroupStyle

به منظور گرفتن مجموعه از شیء GroupStyle که برای ظاهر هر سطح از گروه بندی ایتم ها استفاده می شود  (به ارث رسیده از ItemsControl).

۱۰

Height

به منظور گرفتن و یا تنظیم میزان ارتفاع کنترل استفاده می شود (به ارث رسیده از FrameworkElement).

۱۱

HorizontalAlignment

به منظور گرفتن و یا تنظیم تراز افقی کنترل در داخل کنترل والد استفاده می شود (به ارث رسیده از FrameworkElement).

۱۲

IsFocused

به منظور گرفتن وضعیت فوکوس منطقی استفاده می شود (به ارث رسیده از UIElement).

۱۳

IsOpen

به منظور گرفتن و یا تنظیم وضعیت باز بودن کنترل استفاده می شود.

۱۴

IsEnabled

به منظور گرفتن و یا تنظیم وضعیت فعال بودن یا نبودن کنترل استفاده می شود. زمانی که کنترلی غیرفعال باشد، کاربر نمی تواند با آن تعامل کند (به ارث رسیده از Control).

۱۵

Margin

میزان فاصله بیرونی کنترل را مشخص می کند (به ارث رسیده از FrameworkElement).

۱۶

Name

به منظور تنظیم یک نام شناسایی برای کنترل استفاده می شود. زمانی که پردازنده XAML درخت اشیاء را ایجاد می کند، کد Run-time می تواند با استفاده از نام یک کنترل به آن ارجاع دهد (به ارث رسیده از FrameworkElement).

۱۷

Opacity

میزان شفافیت کنترل را مشخص می کند. مقدار قابل قبول باید بین ۰٫۰ تا ۱٫۰ باشد (به ارث رسیده از UIElement).

۱۸

Style

استایل مربوط به کنترل را تنظیم می کند (به ارث رسیده از FrameworkElement).

۱۹

VerticalAlignment

تراز عمودی کنترل را در داخل کنترل والد مشخص می کند (به ارث رسیده از FrameworkElement).

۲۰

Width

به منظور گرفتن و یا تنظیم میزان عرض کنترل استفاده می شود (به ارث رسیده از FrameworkElement).

متدهای پرکاربرد

در جدول زیر می توانید متدهای پر استفاده مربوط به ContextMenu  را به همراه توضیح مختصری در مورد هر کدام مشاهده کنید.

ردیفتوضیحات
۱

AddChild

شیء مشخص شده را به عنوان فرزند به ItemsControl اضافه می کند (به ارث رسیده از ItemsControl).

۲

FindName

شیء که نام مشخص شده را داشته باشد را پیدا می کند (به ارث رسیده از FrameworkElement).

۳

Focus

به منظور تنظیم فوکوس بر روی کنترل استفاده می شود (به ارث رسیده از Control).

۴

OnDragEnter

قبل از اینکه رویداد DragEnter اتفاق افتد، این متد فراخوانی می شود (به ارث رسیده از Control).

۵

OnDragLeave

قبل از اینکه رویداد DragLeave اتفاق افتد، این متد فراخوانی می شود (به ارث رسیده از Control).

۶

OnDragOver

قبل از اینکه رویداد DragOver اتفاق افتد، این متد فراخوانی می شود (به ارث رسیده از Control).

۷

OnDrop

قبل از اینکه رویداد Drop اتفاق افتد، این متد فراخوانی می شود (به ارث رسیده از Control).

۸

OnGotFocus

قبل از اینکه رویداد GotFocus اتفاق افتد، این متد فراخوانی می شود (به ارث رسیده از Control).

۹

OnLostFocus

قبل از اینکه رویداد LostFocus اتفاق افتد، این متد فراخوانی می شود (به ارث رسیده از Control).

۱۰

SetBinding

این متد به منظور بایند کردن مقادیر استفاده می شود (به ارث رسیده از FrameworkElement).

رویدادهای پرکاربرد

در جدول زیر می توانید رویدادهای پر استفاده مربوط به ContextMenu  را به همراه توضیح مختصری در مورد هر کدام مشاهده کنید.

ردیفتوضیحات
۱

Closed

زمانی که یک نمونه خاص از یک ContextMenu بسته شود، رخ می دهد.

۲

ContextMenuClosing

قبل از بسته شدن ContextMenu رخ می دهد (به ارث رسیده از FrameworkElement).

۳

ContextMenuOpening

زمانی که ContextMenu بخواهد باز شود، رخ می دهد (به ارث رسیده از FrameworkElement).

۴

DataContextChanged

زمانی که ContextMenu تغییر کند رخ می دهد (به ارث رسیده از FrameworkElement).

۵

DragEnter

زمانی که سیستم ورودی یک رویداد drag که هدفش این کنترل است را گزارش دهد، این رویداد رخ می دهد (به ارث رسیده از UIElement).

۶

DragLeave

زمانی که سیستم ورودی یک رویداد drag که منشاء آن این کنترل است را گزارش دهد، این رویداد رخ می دهد (به ارث رسیده از UIElement).

۷

DragOver

زمانی که سیستم ورودی یک رویداد drag را با این کنترل به عنوان هدف drop شدن، گزارش دهد، این رویداد رخ می دهد (به ارث رسیده از UIElement).

۸

GotFocus

زمانی که بر روی کنترل فوکوس شود، این رویداد رخ می دهد (به ارث رسیده از UIElement).

۹

IsEnabledChanged

زمانی که مقدار خایت IsEnabled تغییر کند، این رویداد رخ می دهد (به ارث رسیده از Control).

۱۰

KeyDown

زمانی که یک کلید از کیبورد فشار داده شود و فوکوس جاری بر روی کنترل باشد، این رویداد رخ می دهد (به ارث رسیده از UIElement).

۱۱

KeyUp

زمانی که کلید فشار داده شده رها شود و فوکوس جاری بر روی کنترل باشد، این رویداد رخ می دهد (به ارث رسیده از UIElement).

۱۲

LostFocus

زمانی که کنترل فوکوس را از دست بدهد، این رویداد رخ می دهد (به ارث رسیده از UIElement).

مثال:

یک پروژه WPF با نام WPFContextMenuControl ایجاد کنید و سپس یک کنترل TextBox را به پنجره اصلی برنامه اضافه کنید و خاصیت آن ها را به صورت زیر تغییر کنید.

خاصیتمقدار
NametextBox1
TextHi, this is WPF tutorial
TextWarpingWarp
Width۳۰۰

کدهای XAML مربوط به مثال فوق باید به شکل زیر باشد.

کدهای C# مربوط به مثال:

اگر برنامه را کامپایل و اجرا کنید خروجی زیر را تولید می کند.

wpf contextmenu 10331 2 تصویر

ثبت نظر
ریفریش کنید!
نظرات کاربران (۰ مورد)

هیچ نظری ثبت نشده است