This article has been localized into Persian by the community.
کنترل Button
هیچ چارچوبی رابط کاربری گرافیکی بدون کنترل دکمه کامل نخواهد بود ، بنابراین قطعاً WPF یک قاب خوب دارد گنجانده شده است ، و درست مانند بقیه کنترل های چارچوب ، بسیار انعطاف پذیر است و به شما امکان می دهد تقریباً هر کاری را انجام دهید اما بگذارید با چند مثال اساسی شروع کنیم.
یک دکمه ساده
درست مانند بسیاری دیگر از کنترل های WPF ، یک دکمه را می توان با اضافه کردن یک برچسب دکمه به شما نمایش داد پنجره اگر متن را بین برچسب ها قرار دهید (یا یک کنترل دیگر) ، به عنوان محتوای دکمه عمل می کند:
<Button>Hello, world!</Button>
خیلی ساده ، درست است؟ البته دکمه در واقع هنوز هیچ کاری انجام نمی دهد ، اما اگر به آن اشاره کنید ، می فهمید که آن را با یک اثر خوب معلق در هوا از فضای بیرون می آید. اما بیایید با عضویت در رویداد کلیک خود ، دکمه کاری انجام دهیم (اطلاعات بیشتر در مورد این فرایند را می توانید در مقاله مربوط به عضویت در رویدادهای XAML پیدا کنید):
<Button Click="HelloWorldButton_Click">Hello, World!</Button>
در Code-behind ، به یک روش تطبیق برای کنترل کلیک نیاز دارید:
private void HelloWorldButton_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show("Hello, world!");
}
اکنون یک دکمه بسیار اساسی دارید و هنگامی که روی آن کلیک می کنید ، پیامی نمایش داده می شود!
فرمت محتوا
درون برنامه، یک متن ساده داخل محتوای یک دکمه به یک TextBlock Control تبدیل میشود، و این به این معناست که شما میتوانید همان قالب بندی های متن را کنترل کنید شما ویژگی هایی از Button control را برای این کار پیدا خواهید دید که شامل(نه محدود به) Foreground, Background, FontWeight و غیره است. به عبارت دیگر تغییر دادن قالب بندی متن درون یک Button control بسیار ساده است.
<Button Background="Beige" Foreground="Blue" FontWeight="Bold">Formatted Button</Button>
با تنظیم مستقیم این دکمه ها روی دکمه ، شما محدود به استفاده از قالب بندی یکسان برای کلیه مطالب هستید ، اما اگر به اندازه کافی مناسب نباشد ، فقط برای قالب بندی پیشرفته تر مطالب ادامه دهید.
دکمه هایی با محتوای پیشرفته
قبلاً چندین بار در مورد این موضوع صحبت کرده ایم ، اما یکی از موارد بسیار جالب در مورد WPF ، امکان جایگزینی متن ساده در داخل کنترل با سایر کنترل های WPF است. این همچنین بدان معنی است که شما مجبور نیستید دکمه های خود را به متن ساده محدود کنید ، به همان روش قالب بندی شده - فقط می توانید چندین کنترل متن را با قالب بندی متفاوت اضافه کنید. دکمه WPF فقط از یک کنترل مستقیم کودک پشتیبانی می کند ، اما شما می توانید آن را بصورت پنل بسازید ، که در آن صورت به همان تعداد کنترل مورد نیاز شما میزبان خواهد بود. می توانید از این روش برای ایجاد دکمه هایی با انواع مختلف قالب بندی استفاده کنید:
<Button>
<StackPanel Orientation="Horizontal">
<TextBlock>Formatted </TextBlock>
<TextBlock Foreground="Blue" FontWeight="Bold" Margin="2,0">Button</TextBlock>
<TextBlock Foreground="Gray" FontStyle="Italic">[Various]</TextBlock>
</StackPanel>
</Button>
البته ، شما فقط به متن محدود نمی شوید - می توانید هر آنچه را که می خواهید داخل دکمه های خود قرار دهید ، که ما را به سوژه سوق می دهد که می دانم افراد زیادی خواهان آن هستند. دکمه هایی با تصاویر
دکمه ها با تصاویر (دکمه تصویر)
در بسیاری از چارچوب های UI ، یک دکمه معمولی و سپس یک یا چندین نوع دیگر پیدا خواهید کرد که ویژگی های اضافی را ارائه می دهد. یكی از رایج ترین انواع آن ، ImageButton است كه همانطور كه از نام آن پیداست ، یك دکمه است كه معمولاً به شما اجازه می دهد تا قبل از متن تصویری را درج كنید. اما در WPF ، نیازی به کنترل جداگانه برای تحقق این امر نیست - همانطور که تازه دیدید ، ما می توانیم چندین کنترل را در داخل یک دکمه قرار دهیم ، بنابراین می توانید به راحتی این کار را به عنوان کنترل تصویر اضافه کنید:
<Button Padding="5">
<StackPanel Orientation="Horizontal">
<Image Source="/WpfTutorialSamples;component/Images/help.png" />
<TextBlock Margin="5,0">Help</TextBlock>
</StackPanel>
</Button>
ایجاد یک دکمه تصویر در WPF بسیار ساده است ، و مطمئناً شما برای جابجایی چیزها ، مثلاً آزاد هستید. اگر می خواهید به جای قبل از تصویر ، متن را بخوانید و غیره.
بالشتک
شما ممکن است توجه کرده باشید که دکمه های موجود در چارچوب WPF به طور پیش فرض با هیچ بالینی همراه نیست. این بدان معنی است که متن بسیار نزدیک به مرزها است ، که ممکن است کمی عجیب به نظر برسد ، زیرا بیشتر دکمه های یافت شده در جای دیگر (وب ، برنامه های دیگر و غیره) حداقل دارای حداقل سطح بالایی هستند. جای orries, because the Button comes with a Padding property:
<Button Padding="5,2">Hello, World!</Button>
وی یک جیب 5 پیکسل در طرفین و 2 پیکسل در بالا و پایین اعمال خواهد کرد. اما باید اعمال شود با استفاده از یک سبک ، بالشتک را به صورت جهانی یا در کل برنامه یا فقط در این پنجره خاص اعمال کنید با استفاده از یک سبک (بیشتر در مورد سبکهای بعدی) بالشتک را در سطح جهانی ، یا در کل برنامه یا فقط در این پنجره خاص ، وارد کنید. در اینجا مثالی آورده شده است که ما با استفاده از خاصیت Window.Res منابع در پنجره استفاده می کنیم:
<Window.Resources>
<Style TargetType="{x:Type Button}">
<Setter Property="Padding" Value="5,2"/>
</Style>
</Window.Resources>
بالشتک وی اکنون روی همه دکمه های شما اعمال خواهد شد ، اما مطمئنا می توانید با مشخص کردن ویژگی Padding روی یک دکمه ، آن را نادیده بگیرید. در اینجا نحوه دکمه های دکمه های این مثال با بالشتک مشترک آورده شده است:
خلاصه
از این مقاله مشاهده می کنید ، استفاده از دکمه های موجود در چارچوب WPF بسیار آسان است و می توانید این کنترل مهم را تقریباً بی پایان تنظیم کنید.