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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
|
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:wpf="clr-namespace:MaterialDesignThemes.Wpf"
xmlns:system="clr-namespace:System;assembly=mscorlib">
<Style TargetType="{x:Type wpf:RatingBar}">
<Setter Property="ClipToBounds" Value="False" />
<Setter Property="Foreground" Value="{DynamicResource PrimaryHueMidBrush}" />
<Setter Property="wpf:RippleAssist.Feedback" Value="{DynamicResource MaterialDesignFlatButtonRipple}" />
<Setter Property="ValueItemTemplate">
<Setter.Value>
<DataTemplate DataType="system:Int32">
<Viewbox Width="24" Height="24">
<Canvas Width="24" Height="24">
<Path Data="M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z"
Fill="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=Control}, Path=Foreground}" />
</Canvas>
</Viewbox>
</DataTemplate>
</Setter.Value>
</Setter>
<Setter Property="ValueItemContainerButtonStyle">
<Setter.Value>
<Style TargetType="wpf:RatingBarButton">
<Style.Setters>
<Setter Property="Command" Value="{x:Static wpf:RatingBar.SelectRatingCommand}"/>
<Setter Property="CommandParameter" Value="{Binding RelativeSource={RelativeSource Self}, Path=Value}"/>
<Setter Property="wpf:RippleAssist.ClipToBounds" Value="False"/>
<Setter Property="wpf:RippleAssist.IsCentered" Value="True"/>
<Setter Property="wpf:RippleAssist.RippleSizeMultiplier" Value="0.5"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="wpf:RatingBarButton">
<wpf:Ripple Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}" Focusable="False"
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
Padding="{TemplateBinding Padding}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
RenderTransformOrigin=".5, .5">
<wpf:Ripple.RenderTransform>
<RotateTransform x:Name="RotateTransform"></RotateTransform>
</wpf:Ripple.RenderTransform>
</wpf:Ripple>
<ControlTemplate.Triggers>
<EventTrigger RoutedEvent="Click">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard TargetName="RotateTransform" TargetProperty="Angle">
<DoubleAnimationUsingKeyFrames>
<SplineDoubleKeyFrame KeyTime="0" Value="0" />
<EasingDoubleKeyFrame KeyTime="0:0:0.8" Value="360">
<EasingDoubleKeyFrame.EasingFunction>
<SineEase EasingMode="EaseInOut" />
</EasingDoubleKeyFrame.EasingFunction>
</EasingDoubleKeyFrame>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style.Setters>
<Style.Triggers>
<Trigger Property="IsWithinSelectedValue" Value="False">
<Setter Property="Opacity" Value=".26" />
</Trigger>
</Style.Triggers>
</Style>
</Setter.Value>
</Setter>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type wpf:RatingBar}">
<ItemsControl ItemsSource="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=RatingButtons}"
VerticalAlignment="Top"
HorizontalAlignment="Left"
Margin="{TemplateBinding Padding}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=wpf:RatingBar}, Path=Orientation}" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Opacity" Value=".26" />
</Trigger>
</Style.Triggers>
</Style>
</ResourceDictionary>
|