ورود

View Full Version : سوال: گرد نشدن لبه های دکمه جدید در قسمت ResourceDictionary



forodo
سه شنبه 11 شهریور 1393, 21:23 عصر
سلام
من می خوام دایره داشته باشم که روی اون 2تا دکمه وجود داره که مثلاً وقتی موس رو روی اولی می برم مخفی بشه و دومی نمایان بشه و بعد از خارج شدن از اولی عمل عکس انجام بشه یعنی دکمه دومی مخفی بشه و اولی نمایان بشه.
تو قسمت صفحه اصلی ( Main Window ) این کار رو انجام دادم ( طراحی اش رو ) ولی دیدم که نمی دونم کار ضبط کردن و به صورت انیمیشنی اجرا شدن رو انجام بدم.
گفتم برم توی ResourceDictionary کارم رو انجام بدم که وقتی یه دکمه جدید می ندازم گزینه CornerRadius وجود نداره.
اینم بگم که wpf تقریباً صفرم.
با تشکر

OmMiD_MtWo
چهارشنبه 12 شهریور 1393, 10:12 صبح
سلام دوست عزیز
من هم مثل شما در WPF تازه کارم و دارم اولین پروژه م رو انجام میدم. پُست شما رو که دیدم متوجه شدم من هم باید گوشه ی دکمه هام رو گِرد میکردم! :لبخندساده:
شما گزینه CornerRadius رو باید از طریق کدنویسی ایجاد کنید. من کار با نرم افزار Blend رو به شما پیشنهاد میدم اگر میخواهید از هرنوع کدنویسی برای طرح هاتون راحت بشید؛ ولی به هر حال برای این که گوشه ی دکمه هاتون گِرد شه باید تو قسمت Style جدیدی که ساختید، به تگ Border بِرید و CornerRadius را بنویسید و عدد دلخواهتون رو وارد کنید.
موفق باشید

PouriaParhami
چهارشنبه 12 شهریور 1393, 21:02 عصر
سلام اگر فقط گوشه می خواهید گرد بشه که توضیح دادن اگر کلا دکمه دایره شکل می خواهید باشه می تونید از این کد در Window.Resources استفاده کنید حتی فقط گوشه هم می شه گرد کرد


<!--Btn style -->

<Style x:Key ="btnStyle" TargetType ="{x:Type Button}">
<Setter Property ="Foreground" Value ="Black"/>
<Setter Property ="FontWeight" Value ="Bold"/>
<Setter Property ="Template">
<Setter.Value>
<ControlTemplate TargetType ="{x:Type Button}">
<Grid>
<Ellipse Name ="InnerRing" Width ="45" Height ="45" Fill ="#FFFFF48B"/>
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property ="IsMouseOver" Value ="True">
<Setter TargetName ="InnerRing" Property ="Fill" Value ="#FF7450B2"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!--Btn Edit-->

PouriaParhami
چهارشنبه 12 شهریور 1393, 21:05 عصر
و در قسمت کد مربوط به دکمه فقط کافیه بنویسد
Style="{StaticResource btnStyle}" اینو خط برای هر دکمه بزارید گرد می شه

forodo
پنج شنبه 13 شهریور 1393, 11:42 صبح
سلام دوست عزیز
من هم مثل شما در WPF تازه کارم و دارم اولین پروژه م رو انجام میدم. پُست شما رو که دیدم متوجه شدم من هم باید گوشه ی دکمه هام رو گِرد میکردم! :لبخندساده:
شما گزینه CornerRadius رو باید از طریق کدنویسی ایجاد کنید. من کار با نرم افزار Blend رو به شما پیشنهاد میدم اگر میخواهید از هرنوع کدنویسی برای طرح هاتون راحت بشید؛ ولی به هر حال برای این که گوشه ی دکمه هاتون گِرد شه باید تو قسمت Style جدیدی که ساختید، به تگ Border بِرید و CornerRadius را بنویسید و عدد دلخواهتون رو وارد کنید.
موفق باشید
یه grid میندازم توی دکمه بعد وقتی یه دکمه دیگه می خوام بندازم توی gridای که رو دکمه انداختم اون دکمه جدیده اون گزینه CornerRadius رو نداره. حتی یه border میندازم، چون بوردر اون گزینه رو داره و داخلش یه دکمه می ندازم و CornerRadius رو تغییر می دم خود bordere تغییر می کنه نه دکمه.

سلام اگر فقط گوشه می خواهید گرد بشه که توضیح دادن اگر کلا دکمه دایره شکل می خواهید باشه می تونید از این کد در Window.Resources استفاده کنید حتی فقط گوشه هم می شه گرد کرد


<!--Btn style -->

<Style x:Key ="btnStyle" TargetType ="{x:Type Button}">
<Setter Property ="Foreground" Value ="Black"/>
<Setter Property ="FontWeight" Value ="Bold"/>
<Setter Property ="Template">
<Setter.Value>
<ControlTemplate TargetType ="{x:Type Button}">
<Grid>
<Ellipse Name ="InnerRing" Width ="45" Height ="45" Fill ="#FFFFF48B"/>
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property ="IsMouseOver" Value ="True">
<Setter TargetName ="InnerRing" Property ="Fill" Value ="#FF7450B2"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!--Btn Edit-->



Window.Resources کجاست؟
من خیلی تازه کارم.

PouriaParhami
پنج شنبه 13 شهریور 1393, 12:45 عصر
سلام ، ببین روش زیاده اما داری همه چیز با هم می نویسی به ایم سایت سر بزن به صورت بسیار ساده برای دکمه و .... کد های مورد نظر نوشته
http://www.java2s.com/Tutorial/CSharp/0470__Windows-Presentation-Foundation/Asimpletemplateforaroundbutton.htm

<Window

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:SeptaArchive" x:Class="OrderPage"
Title="سفارشات" Height="619.777" Width="1106.989" Icon="Logo.ico">
<Window.Resources>
<local:SeptaDataset x:Key="SeptaDataset"/>
<CollectionViewSource x:Key="SearchOrderViewSource" Source="{Binding SearchOrder, Source={StaticResource SeptaDataset}}"/>
<!--Button's Style-->
<!--Btn Add-->
<Style x:Key ="BtnAdd" TargetType ="{x:Type Button}">
<Setter Property ="Foreground" Value ="Black"/>
<Setter Property ="FontWeight" Value ="Bold"/>
<Setter Property ="Template">
<Setter.Value>
<ControlTemplate TargetType ="{x:Type Button}">
<Grid>
<Ellipse Name ="InnerRing" Width ="58" Height ="58" Fill ="#FFB3E4B7"/>
<Image Source="Image/Add.ico" Height="50" Width="50"/>
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property ="IsMouseOver" Value ="True">
<Setter TargetName ="InnerRing" Property ="Fill" Value ="#FF7450B2"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>



</Window.Resources>

PouriaParhami
پنج شنبه 13 شهریور 1393, 12:49 عصر
<Window.Resources>
اگر نداریش به صورت دستی اضافه کن
به اون لینک سر بزن متوجه می شی

forodo
پنج شنبه 13 شهریور 1393, 13:36 عصر
<Window.Resources>
اگر نداریش به صورت دستی اضافه کن
به اون لینک سر بزن متوجه می شی
نفهمیدم کجاست!

PouriaParhami
پنج شنبه 13 شهریور 1393, 19:45 عصر
به اون سایت رفتید ؟
اگر ندارید خودتون اضافه کنید ، بعد از Title تگ باز کندی <Window.Resources> و بعد کد مانند کدی که نوشتم بنویسد و تگ رو قبل از تگ Grid اصلی ببندید
یک دکمه اضافه کنید و در تگ دکمه بنویسید
Style="{StaticResource btnStyle}"