ورود

View Full Version : استایل دادن به Toolbar و Menu



L u k e
چهارشنبه 28 مهر 1389, 16:59 عصر
سلام
چرا Toolbar Wpf اینجوریه ؟
توی بلند نمی شه زیاد قشنگش کرد
رنگ توی اون نقطه نقطه هاشو چطوری می شه تغییر داد ؟

به زیر منو ها چطوری می شه استایل داد مثلا می خوام بگم بکگراندشون مشکی شه ؟

مهدی فرزاد
چهارشنبه 28 مهر 1389, 20:43 عصر
سلام
من سعی میکنم ساخت استایل برای منو رو توی آموزش بعدی براتون بگذارم با بلند ساده میشه انجامش داد
این یک نمونه
توی این نمونه شما میتونید هر جا من رنگ رو به ریسورس مرتبط کردم خودتون رنگ بدید آخه من فایل ریسور رو بهتون ندادم
که رنگها رو توش ست کردم
من بعضی ها رو با رنگ قرمز براتون مشخص کردم بقیه رو خدتون پیدا کنید و جایگزین کنید میتونید از اوپسیدی کم هم استفاده کنید تا منو شیشه ای بشه

ولی ساخت اون با Blend سادست و نیازی به نوشتن این همه کد نیست
منتظر آموزش ها ی من باشید


<Style TargetType="{x:Type Menu}">
<Setter Property="Background" Value="{StaticResource DefaultBackColor}"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate
TargetType="{x:Type Menu}"
>
<Border
SnapsToDevicePixels="true"
Background="{DynamicResource Brush6}"
BorderBrush="{StaticResource DefaultBorderColor}"
BorderThickness=".75"
Padding="{TemplateBinding Padding}"
CornerRadius="0" d:IsEffectDisabled="True"
>

<ItemsPresenter
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
VerticalAlignment="Center"
/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>

<!-- ************************************************** * -->
<!-- ContextMenu -->
<!-- ************************************************** * -->
<Style TargetType="{x:Type ContextMenu}">
<Setter Property="SnapsToDevicePixels" Value="True"/>
<Setter Property="OverridesDefaultStyle" Value="True"/>
<Setter Property="Grid.IsSharedSizeScope" Value="true"/>
<Setter Property="HasDropShadow" Value="False"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ContextMenu}">
<Border
x:Name="Border"
Background="{StaticResource DefaultBackColor}"
BorderBrush="{StaticResource DefaultBorderColor}"
BorderThickness="1" >
<StackPanel IsItemsHost="True"
KeyboardNavigation.DirectionalNavigation="Cycle"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>


<!--x:Key="{x:Static MenuItem.SeparatorStyleKey}"-->
<!-- ************************************************** * -->
<!-- MenuItem.SeparatorStyleKey -->
<!-- ************************************************** * -->
<Style x:Key="{x:Static MenuItem.SeparatorStyleKey}"
TargetType="{x:Type Separator}">
<Setter Property="Height" Value="1"/>
<Setter Property="Margin" Value="2,1,2,1"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Separator}">
<Border
BorderBrush="{StaticResource DisabledForeColor}"
Background="{StaticResource DisabledForeColor}"
BorderThickness="1"
/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>


<!-- ************************************************** * -->
<!-- MenuItem.TopLevelHeaderTemplateKey -->
<!-- ************************************************** * -->
<ControlTemplate x:Key="{x:Static MenuItem.TopLevelHeaderTemplateKey}"
TargetType="{x:Type MenuItem}">
<ControlTemplate.Resources>
<Storyboard x:Key="Storyboard1">
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="Border" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Childr en)[0].(ScaleTransform.ScaleX)">
<SplineDoubleKeyFrame KeyTime="00:00:01.3000000" Value="0.996"/>
</DoubleAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="Border" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Childr en)[3].(TranslateTransform.X)">
<SplineDoubleKeyFrame KeyTime="00:00:01.3000000" Value="0"/>
</DoubleAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="Border" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Childr en)[3].(TranslateTransform.Y)">
<SplineDoubleKeyFrame KeyTime="00:00:01.3000000" Value="0"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</ControlTemplate.Resources>
<Border x:Name="Border" RenderTransformOrigin="0.5,0.5" BorderBrush="{x:Null}" BorderThickness="0" CornerRadius="2" >
<Border.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform/>
<TranslateTransform/>
</TransformGroup>
</Border.RenderTransform>
<Grid>
<ContentPresenter
x:Name="contentPresenter"
Margin="2"
ContentSource="Header"
RecognizesAccessKey="True"
HorizontalAlignment="Center" VerticalAlignment="Center"
/>
<Popup
x:Name="Popup"
Placement="Bottom"
IsOpen="{TemplateBinding IsSubmenuOpen}"
AllowsTransparency="True"
Focusable="False"
PopupAnimation="Slide"

>
<Border
x:Name="SubmenuBorder"
SnapsToDevicePixels="True"
Background="{DynamicResource Brush7 op}"
BorderBrush="#99000000"
BorderThickness="0.75"
>
<StackPanel
IsItemsHost="True"
KeyboardNavigation.DirectionalNavigation="Cycle" />
</Border>
</Popup>
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsHighlighted" Value="true">
<!--<Setter TargetName="Border" Property="BorderBrush"
Value="Transparent"/>-->

<Setter Property="Background" TargetName="Border" Value="{DynamicResource Brush4}"/>

</Trigger>
<!--<Trigger SourceName="Popup" Property="Popup.AllowsTransparency" Value="True">
<Setter TargetName="SubmenuBorder" Property="CornerRadius" Value="0,0,4,4"/>
<Setter TargetName="SubmenuBorder" Property="Padding" Value="0,0,0,3"/>
</Trigger>-->
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Foreground" Value="{StaticResource DisabledForeColor}"/>
<Setter TargetName="Border" Property="Background" Value="{StaticResource DisabledBackColor}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>


<!-- ************************************************** * -->
<!-- MenuItem.TopLevelItemTemplateKey -->
<!-- ************************************************** * -->
<ControlTemplate
x:Key="{x:Static MenuItem.TopLevelItemTemplateKey}"
TargetType="{x:Type MenuItem}">
<Border x:Name="Border" BorderBrush="{x:Null}" BorderThickness="0" CornerRadius="2" >
<Grid d:IsEffectDisabled="True">
<ContentPresenter
Margin="2"
ContentSource="Header"
RecognizesAccessKey="True" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsHighlighted" Value="true">
<!--<Setter TargetName="Border" Property="BorderBrush" Value="Transparent"/>-->
<Setter Property="Background" TargetName="Border" Value="{DynamicResource Brush4}"/>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Foreground"
Value="{StaticResource DisabledForeColor}"/>
<Setter TargetName="Border" Property="Background" Value="{StaticResource DisabledBackColor}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>




<!-- ************************************************** * -->
<!-- MenuItem.SubmenuItemTemplateKey -->
<!-- ************************************************** * -->

<ControlTemplate
x:Key="{x:Static MenuItem.SubmenuItemTemplateKey}"
TargetType="{x:Type MenuItem}">
<Border x:Name="Border"
BorderBrush="{x:Null}"
BorderThickness="0.75"
Margin="2,1,2,1"
CornerRadius="2">
<Grid Grid.IsSharedSizeScope="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="22" SharedSizeGroup="Icon"/>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" SharedSizeGroup="Shortcut"/>
<ColumnDefinition Width="13"/>
</Grid.ColumnDefinitions>
<ContentPresenter
Width="16"
Height="16"
MaxHeight="16"
MaxWidth="16"
x:Name="Icon"
Margin="2"
VerticalAlignment="Center"
ContentSource="Icon"
/>
<Border

x:Name="Check"
Width="9"
Height="10"
Visibility="Collapsed"
>
<Path
FlowDirection="LeftToRight"
x:Name="CheckMark"
Width="9" Height="10"
Visibility="Hidden"
SnapsToDevicePixels="False"
StrokeThickness="0"
Data="M 0 2 L 0,3 L 1,3 L 2,4 L 3,5 L 4,4 L 5,3 L 6,2 L 7,1 L 8,0 L 8,4 L 7,5 L 6,6 L 5,7 L 4,8 L 3,9 L 2,8 L 1,7 L 0,6 L 0,3 "
/>
</Border>
<ContentPresenter
VerticalAlignment="Center"
x:Name="HeaderHost"
Grid.Column="1"
ContentSource="Header"
RecognizesAccessKey="True"
/>
<TextBlock
x:Name="InputGestureText"
TextAlignment="Center"
Grid.Column="2"
Text="{TemplateBinding InputGestureText}"
Margin="2"
DockPanel.Dock="Right"
/>
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="Icon" Value="{x:Null}">
<Setter TargetName="Icon" Property="Visibility" Value="Hidden"/>
</Trigger>
<Trigger Property="IsChecked" Value="true">
<Setter TargetName="CheckMark" Property="Visibility" Value="Visible"/>
</Trigger>
<Trigger Property="IsCheckable" Value="true">
<Setter TargetName="Check" Property="Visibility" Value="Visible"/>
<Setter TargetName="Icon" Property="Visibility" Value="Hidden"/>
</Trigger>
<Trigger Property="IsHighlighted" Value="true">
<Setter Property="Background" TargetName="Border" Value="{DynamicResource Brush4}"/>
</Trigger>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Foreground" Value="{StaticResource DisabledForeColor}"/>
<Setter TargetName="InputGestureText" Property="Foreground" Value="{StaticResource DisabledForeColor}"/>
<Setter TargetName="Border" Property="Background" Value="{StaticResource DisabledBackColor}"/>
<Setter TargetName="CheckMark" Property="Fill" Value="{StaticResource DisabledForeColor}"/>

</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>






<!-- ************************************************** * -->
<!-- MenuItem.SubmenuHeaderTemplateKey -->
<!-- ************************************************** * -->

<ControlTemplate
x:Key="{x:Static MenuItem.SubmenuHeaderTemplateKey}"
TargetType="{x:Type MenuItem}">
<Border x:Name="Border"
BorderBrush="{DynamicResource DefaultBorderColor}"
BorderThickness="0"
Margin="2,1,2,1"
CornerRadius="2">
<Grid Grid.IsSharedSizeScope="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="22" SharedSizeGroup="Icon"/>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" SharedSizeGroup="Shortcut"/>
<ColumnDefinition Width="13"/>
</Grid.ColumnDefinitions>
<ContentPresenter
HorizontalAlignment="Center"
Width="16"
Height="16"
MaxHeight="16"
MaxWidth="16"
x:Name="Icon"
Margin="2"
VerticalAlignment="Center"
ContentSource="Icon"
/>
<ContentPresenter
VerticalAlignment="Center"
x:Name="HeaderHost"
Grid.Column="1"
ContentSource="Header"
RecognizesAccessKey="True"
/>
<TextBlock
x:Name="InputGestureText"
Grid.Column="2"
Text="{TemplateBinding InputGestureText}"
TextAlignment="Center"
Margin="2"
DockPanel.Dock="Right"
/>
<Border
Grid.Column="3"

>
<Path
x:Name="CheckMark"
Width="6"
Height="9"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Data="M 0 0 L 1,0 L 2,1 L 3,2 L 4,3 L 5,4 L 4,5 L 3,6 L 2,7 L 1,8 L 0,8 L 0,0"
StrokeThickness="0" Stroke="{DynamicResource Brush3}" Fill="{DynamicResource Brush3}"
/>
</Border>
<Popup
x:Name="Popup"
Placement="Right"
HorizontalOffset="2"
IsOpen="{TemplateBinding IsSubmenuOpen}"
AllowsTransparency="True"
Focusable="False"
PopupAnimation="Scroll">
<Border
x:Name="SubmenuBorder"
SnapsToDevicePixels="True"
Background="{DynamicResource Brush7 op}"
BorderThickness="0.75" BorderBrush="#99000000"
>
<StackPanel
IsItemsHost="True"
KeyboardNavigation.DirectionalNavigation="Cycle"
/>
</Border>
</Popup>
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="Icon" Value="{x:Null}">
<Setter TargetName="Icon" Property="Visibility" Value="Collapsed"/>
</Trigger>
<Trigger Property="IsHighlighted" Value="true">
<Setter Property="Background" TargetName="Border" Value="{DynamicResource Brush4}"/>
</Trigger>
<!--<Trigger SourceName="Popup" Property="Popup.AllowsTransparency" Value="True">
<Setter TargetName="SubmenuBorder" Property="CornerRadius" Value="4"/>
<Setter TargetName="SubmenuBorder" Property="Padding" Value="0,3,0,3"/>
</Trigger>-->
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Foreground" Value="{StaticResource DisabledForeColor}"/>
<Setter TargetName="InputGestureText" Property="Foreground" Value="{StaticResource DisabledForeColor}"/>
<Setter TargetName="Border" Property="Background" Value="{StaticResource DisabledBackColor}"/>
<Setter TargetName="CheckMark" Property="Fill" Value="{StaticResource DisabledForeColor}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>







<!-- ************************************************** * -->
<!-- MenuItem -->
<!-- ************************************************** * -->
<Style x:Key="{x:Type MenuItem}" TargetType="{x:Type MenuItem}">
<Setter Property="OverridesDefaultStyle" Value="True"/>
<Style.Triggers>
<Trigger Property="Role" Value="TopLevelHeader">
<Setter Property="Template"
Value="{StaticResource {x:Static MenuItem.TopLevelHeaderTemplateKey}}"/>
<Setter Property="Grid.IsSharedSizeScope" Value="true"/>
</Trigger>
<Trigger Property="Role" Value="TopLevelItem">
<Setter Property="Template"
Value="{StaticResource {x:Static MenuItem.TopLevelItemTemplateKey}}"/>
</Trigger>
<Trigger Property="Role" Value="SubmenuHeader">
<Setter Property="Template"
Value="{StaticResource {x:Static MenuItem.SubmenuHeaderTemplateKey}}"/>
</Trigger>
<Trigger Property="Role" Value="SubmenuItem">
<Setter Property="Template"
Value="{StaticResource {x:Static MenuItem.SubmenuItemTemplateKey}}"/>
</Trigger>
</Style.Triggers>
</Style>
</ResourceDictionary>

L u k e
چهارشنبه 28 مهر 1389, 22:49 عصر
منم از Blend استفاده می کنم
یه آموزش درباره ی استایل دادن به Menu و Toolbar و Windoٌw بزارید
خیلی ممنون می شم

مهدی فرزاد
چهارشنبه 28 مهر 1389, 23:21 عصر
سلام
حتما آموزش بعدی من همین خواهد بود

L u k e
یک شنبه 02 آبان 1389, 17:40 عصر
مثلا این تولبار رو ببینید چطوریه ؟
اون دون دوناش با تهشم یه مدلیه
من هر کاری می کنم با بلند نمی شه

مهدی فرزاد
دوشنبه 03 آبان 1389, 15:35 عصر
سلام

من در حال تهیه آموزش های متنوع برای بلند هستم
ولی به علت مشغله کاری شاید نتونم زود به زود آموزش بگذارم
ولی با قولی که به شما دادم آموزش بعدی حتما طریقه دادن استایل به منو خواهد بود
اما به علت اینکه زمان آموزش نباید طولانی باشه تا حجم فایل بالا نره من شیوه دادن استایل رو آموزش میدم و تمام نکات لازم رو میگم
زیبا کردن استایل به عهده خودتون
کمی صبر کنید انشالله مشکلتون حل میشه

مهدی فرزاد
شنبه 08 آبان 1389, 17:44 عصر
سلام
آموزش ایجاد استایل برای Toolbar رو در لینک زیر میتونید دانلود کنید
http://www.barnamenevis.org/forum/showthread.php?t=251604

به زودی آموزش Menu و MenuItems رو هم میگذارم

dharmaa
چهارشنبه 12 تیر 1392, 23:28 عصر
به زودی آموزش Menu و MenuItems رو هم میگذارم
سلام اقای فرزاد میدانم از اخرین ارسال این پست تقریبا سه سال میگذرد . ازانجایی که این پست رو امروز دیدم و در جریان نیستم ایا اموزش استایل دادن به منو و زیر منوها رو دادین بیرون یا خیر؟
میشه اطلاع رسانی کنید!!