کنترل RadioButton در WPF
RadioButton کنترلی است که به کاربر امکان انتخاب یک گزینه از میان چند گزینه را می دهد. در تصویر زیر می توانید سلسله مراتب مربوط به ارث بری کنترل RadioButton را مشاهده کنید.
خاصیت های پرکاربرد
در جدول زیر می توانید خاصت های پر استفاده مربوط به کنترل RadioButton را به همراه توضیح مختصری در مورد هر کدام مشاهده کنید.
ردیف | توضیحات |
1 | Background رنگ پس زمینه دکمه را مشخص می کند (به ارث رسیده از Control). |
2 | BorderBrush رنگ حاشیه دکمه را مشخص می کند (به ارث رسیده از Control). |
3 | BorderThickness میزان ضخامت حاشیه کنترل را مشخص می کند (به ارث رسیده از Control). |
4 | Content محتوای کنترل را مشخص می کند (به ارث رسیده از ContentControl). |
5 | ClickMode نوع کلیک کردن بر روی دکمه را مشخص می کند. حالت های قابل تنظیم عبارت اند از Hover، Press و Release (به ارث رسیده از ButtonBase). |
6 | ContentTemplate این خاصیت برای تنظیم قالب نمایش محتوای کنترل استفاده می شود (به ارث رسیده از ContentControl). |
7 | FontFamily نوع فونتی که برای نمایش محتوای کنترل استفاده می شود را مشخص می کند (به ارث رسیده از Control). |
8 | FontSize اندازه فونتی که برای نمایش محتوای کنترل استفاده می شود را مشخص می کند (به ارث رسیده از Control). |
9 | FontStyle حالت فونت را مشخص می کند. مقادیر قابل تنظیم عبارت اند از Normal، Italic و Oblique (به ارث رسیده از Control). |
10 | FontWeight میزان ضخامت فونتی که برای نمایش محتوای دکمه استفاده می شود را مشخص می کند (به ارث رسیده از Control). |
11 | Foreground رنگ پیش زمینه یا همان رنگ متن را مشخص می کند (به ارث رسیده از Control). |
12 | Height میزان ارتفاع کنترل را مشخص می کند (به ارث رسیده از Control). |
13 | HorizontalAlignment تراز افقی کنترل را در داخل کنترل والد مشخص می کند (به ارث رسیده از Control). |
14 | IsChecked به منظور گرفتن یا تنظیم مقداری استفاده می شود که مشخص کننده این است که آیا ToggleButton در حالت checked قرار دارد یا خیر. |
15 | IsEnabled وضعیت فعال بودن یا نبودن کنترل را مشخص می کند. زمانی که کنترلی غیرفعال باشد، کاربر نمی تواند با آن تعامل کند (به ارث رسیده از Control). |
16 | IsPressed یک مقدار بولی را برمیگرداند که نشان دهنده این است که آیا ButtonBase در یک حالت فشار داده شده قرار دارد یا خیر (به ارث رسیده از ButtonBase). |
17 | IsThreeState به منظور گرفتن و یا تنظیم این که آیا کنترل از سه حالته بودن پشتیبانی می کند یا خیر استفاده می شود (به ارث رسیده از ToggleButton). |
18 | Margin میزان فاصله بیرونی کنترل را مشخص می کند (به ارث رسیده از FrameworkElement). |
19 | Name به منظور تنظیم یک نام شناسایی برای کنترل استفاده می شود. زمانی که پردازنده XAML درخت اشیاء را ایجاد می کند، کد Run-time می تواند با استفاده از نام یک کنترل به آن ارجاع دهد (به ارث رسیده از FrameworkElement). |
20 | Opacity میزان شفافیت کنترل را مشخص می کند. مقدار قابل قبول باید بین 0.0 تا 1.0 باشد (به ارث رسیده از UIElement). |
21 | Resources منابع مربوط به کنترل را مشخص می کند (به ارث رسیده از FrameworkElement). |
22 | Style استایل مربوط به کنترل را تنظیم می کند (به ارث رسیده از FrameworkElement). |
23 | Template قالب کنترل را مشخص می کند. قالب کنترل مشخص می کند که یک کنترل چگونه باید نمایش داده شود (به ارث رسیده از Control). |
24 | VerticalAlignment تراز عمودی کنترل را در داخل کنترل والد مشخص می کند (به ارث رسیده از FrameworkElement). |
25 | Visibility وضعیت نمایش یک کنترل را مشخص می کند. کنترلی که قابل مشاهده نباشد، رندر نمی شود، بر اندازه لایه های دیگر تاثیر نمی گذارد و رویدادها و دستورات را هندل نمی کند (به ارث رسیده از UIElement). |
26 | Width میزان عرض کنترل را مشخص می کند (به ارث رسیده از FrameworkElement). |
رویدادهای پرکاربرد
در جدول زیر می توانید رویدادهای پر استفاده مربوط به کنترل RadioButton را به همراه توضیح مختصری در مورد هر کدام مشاهده کنید.
ردیف | توضیحات |
1 | Checked زمانی که حالت کنترل به انتخاب شده تغییر کند، این رویداد رخ می دهد (به راث رسیده از ToggleButton). |
2 | Click زمانی که بر روی دکمه کلیک شود، این رویداد رخ می دهد (به ارث رسیده از ButtonBase). |
3 | DataContextChanged زمانی که مقدار خاصیت DataContext تغییر کند، این رویداد رخ می دهد (به ارث رسیده از FrameworkElement). |
4 | DragEnter زمانی که سیستم ورودی یک رویداد drag که هدفش این کنترل است را گزارش دهد، این رویداد رخ می دهد (به ارث رسیده از UIElement). |
5 | DragLeave زمانی که سیستم ورودی یک رویداد drag که منشاء آن این کنترل است را گزارش دهد، این رویداد رخ می دهد (به ارث رسیده از UIElement). |
6 | DragOver زمانی که سیستم ورودی یک رویداد drag را با این کنترل به عنوان هدف drop شدن، گزارش دهد، این رویداد رخ می دهد (به ارث رسیده از UIElement). |
7 | DragStarting زمانی که عملیات drag کردن شروع شود، این رویداد رخ می دهد (به ارث رسیده از UIElement). |
8 | GotFocus زمانی که بر روی کنترل فوکوس شود، این رویداد رخ می دهد (به ارث رسیده از UIElement). |
9 | Intermediate زمانی که حالت کنترل به indeterminate تغییر کند، این رویداد رخ می دهد (به راث رسیده از ToggleButton). |
10 | IsEnabledChanged زمانی که مقدار خایت IsEnabled تغییر کند، این رویداد رخ می دهد (به ارث رسیده از Control). |
11 | KeyDown زمانی که یک کلید از کیبورد فشار داده شود و فوکوس جاری بر روی کنترل باشد، این رویداد رخ می دهد (به ارث رسیده از UIElement). |
12 | KeyUp زمانی که کلید فشار داده شده رها شود و فوکوس جاری بر روی کنترل باشد، این رویداد رخ می دهد (به ارث رسیده از UIElement). |
13 | LostFocus زمانی که کنترل فوکوس را از دست بدهد، این رویداد رخ می دهد (به ارث رسیده از UIElement). |
14 | SizeChanged زمانی که مقدار یکی از خاصیت های ActualHeight و یا ActualWidth تغییر کند، این رویداد رخ می دهد (به ارث رسیده از FrameworkElement). |
15 | Unchecked زمانی که حالت کنترل به انتخاب نشده تغییر کند، این رویداد رخ می دهد (به راث رسیده از ToggleButton). |
متدهای پرکاربرد
در جدول زیر می توانید متدهای پر استفاده مربوط به کنترل RadioButton را به همراه توضیح مختصری در مورد هر کدام مشاهده کنید.
ردیف | توضیحات |
1 | ClearValue مقدار یک Dependency Property را پاک می کند (به ارث رسیده از DependencyObject). |
2 | FindName شیء که نام مشخص شده را داشته باشد را پیدا می کند (به ارث رسیده از FrameworkElement). |
3 | OnApplyTemplate هر زمان که در کد برنامه یا فرآیندهای داخلی متد ApplyTemplate فراخوانی شود، این متد invoke می شود. به زبان ساده تر این متد قبلا از اینکه ظاهر کنترل نمایش داده شود، invoke می شود (به ارث رسیده از FrameworkElement). |
4 | OnContentChanged زمانی که مقدار خاصیت Content تغییر کنید این متد invoke می شود. (به ارث رسیده از ContentControl). |
5 | OnDragEnter قبل از اینکه رویداد DragEnter اتفاق افتد، این متد فراخوانی می شود (به ارث رسیده از Control). |
6 | OnDragLeave قبل از اینکه رویداد DragLeave اتفاق افتد، این متد فراخوانی می شود (به ارث رسیده از Control). |
7 | OnDragOver قبل از اینکه رویداد DragOver اتفاق افتد، این متد فراخوانی می شود (به ارث رسیده از Control). |
8 | OnDrop قبل از اینکه رویداد Drop اتفاق افتد، این متد فراخوانی می شود (به ارث رسیده از Control). |
9 | OnGotFocus قبل از اینکه رویداد GotFocus اتفاق افتد، این متد فراخوانی می شود (به ارث رسیده از Control). |
10 | OnKeyDown قبل از اینکه رویداد KeyDown اتفاق افتد، این متد فراخوانی می شود (به ارث رسیده از Control). |
11 | OnKeyUp قبل از اینکه رویداد KeyUp اتفاق افتد، این متد فراخوانی می شود (به ارث رسیده از Control). |
12 | OnLostFocus قبل از اینکه رویداد LostFocus اتفاق افتد، این متد فراخوانی می شود (به ارث رسیده از Control). |
13 | OnToggle زمانی که کنترل محرک Toggle را دریافت کند، این متد فراخوانی می شود (به ارث رسیده از ToggleButton). |
14 | SetBinding این متد به منظور بایند کردن مقادیر استفاده می شود (به ارث رسیده از FrameworkElement). |
مثال
برای درک بهتر یک پروژه WPF با نام WPFRadioButtonControl ایجاد کرده و آن را مانند نمونه زیر تغییر دهید. محتوای فایل 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 | <Window x:Class = "WPFRadioButtonControl.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:WPFRadioButtonControl" mc:Ignorable = "d" Title = "MainWindow" Height = "350" Width = "604"> <Grid> <TextBlock x:Name = "textBlock" HorizontalAlignment = "Left" Margin = "23,68,0,0" TextWrapping = "Wrap" Text = "Gender:" VerticalAlignment = "Top" Width = "83" /> <TextBlock x:Name = "textBlock1" HorizontalAlignment = "Left" Margin = "23,134,0,0" TextWrapping = "Wrap" Text = "Marital Status:" VerticalAlignment = "Top" Width = "83" /> <RadioButton x:Name = "rb1" Content = "Male" HorizontalAlignment = "Left" Margin = "126,68,0,0" VerticalAlignment = "Top" GroupName = "Gender" Width = "69" Checked = "HandleCheck" /> <RadioButton x:Name = "rb2" Content = "Female" HorizontalAlignment = "Left" Margin = "201,68,0,0" VerticalAlignment = "Top" GroupName = "Gender" Width = "81" Checked = "HandleCheck" /> <RadioButton x:Name = "rb3" Content = "Single" HorizontalAlignment = "Left" Margin = "126,134,0,0" VerticalAlignment = "Top" GroupName = "Status" Width = "69" Checked = "HandleCheck1" /> <RadioButton x:Name = "radioButton" Content = "Engaged" HorizontalAlignment = "Left" Margin = "201,134,0,0" VerticalAlignment = "Top" GroupName = "Status" Width = "89" Checked = "HandleCheck1" /> <RadioButton x:Name = "radioButton1" Content = "Married" GroupName = "Status" HorizontalAlignment = "Left" Margin = "302,134,0,0" VerticalAlignment = "Top" Width = "95" Checked = "HandleCheck1" /> <TextBlock x:Name = "textBlock2" HorizontalAlignment = "Left" Margin = "386,68,0,0" TextWrapping = "Wrap" VerticalAlignment = "Top" Width = "191" Height = "26" /> <TextBlock x:Name = "textBlock3" HorizontalAlignment = "Left" Margin = "386,134,0,0" TextWrapping = "Wrap" VerticalAlignment = "Top" Width = "146" Height = "31" /> </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 | using System.Windows; using System.Windows.Controls; namespace WPFRadioButtonControl { /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void HandleCheck1(object sender, RoutedEventArgs e) { RadioButton rb = sender as RadioButton; textBlock3.Text = "You are " + rb.Content; } private void HandleCheck(object sender, RoutedEventArgs e) { RadioButton rb = sender as RadioButton; textBlock2.Text = "You are " + rb.Content; } } } |
زمانی که پروژه فوق را کامپایل و اجرا کنید، خروجی زیر را مشاهده خواهید کرد:
هیچ نظری ثبت نشده است