|
1 | 1 | <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" |
2 | 2 | xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
3 | 3 | xmlns:circularProgressBar="clr-namespace:MaterialDesignThemes.Wpf.Converters.CircularProgressBar" |
4 | | - xmlns:wpf="clr-namespace:MaterialDesignThemes.Wpf" |
5 | | - xmlns:transitions="clr-namespace:MaterialDesignThemes.Wpf.Transitions"> |
| 4 | + xmlns:transitions="clr-namespace:MaterialDesignThemes.Wpf.Transitions" |
| 5 | + xmlns:converters="clr-namespace:MaterialDesignThemes.Wpf.Converters"> |
6 | 6 |
|
7 | 7 | <Style x:Key="MaterialDesignLinearProgressBar" TargetType="{x:Type ProgressBar}"> |
8 | 8 | <Setter Property="Foreground" Value="{DynamicResource PrimaryHueDarkBrush}"/> |
|
121 | 121 | <circularProgressBar:LargeArcConverter x:Key="LargeArcConverter" /> |
122 | 122 | <circularProgressBar:RotateTransformConverter x:Key="RotateTransformConverter" /> |
123 | 123 | <circularProgressBar:RotateTransformCentreConverter x:Key="RotateTransformCentreConverter" /> |
| 124 | + <converters:NotZeroConverter x:Key="NotZeroConverter" /> |
124 | 125 |
|
125 | 126 | <Style x:Key="MaterialDesignCircularProgressBar" TargetType="{x:Type ProgressBar}"> |
126 | 127 | <Setter Property="Foreground" Value="{DynamicResource PrimaryHueMidBrush}" /> |
|
136 | 137 | </Storyboard> |
137 | 138 | <Storyboard x:Key="IsFullyIndeterminateScaleStoryboard"> |
138 | 139 | <DoubleAnimationUsingKeyFrames Storyboard.TargetName="FullyIndeterminateGridScaleTransform" |
139 | | - Storyboard.TargetProperty="ScaleX" |
140 | | - RepeatBehavior="Forever"> |
| 140 | + Storyboard.TargetProperty="ScaleX" |
| 141 | + RepeatBehavior="Forever"> |
141 | 142 | <SplineDoubleKeyFrame KeyTime="0" Value="0.0" /> |
142 | 143 | <SplineDoubleKeyFrame KeyTime="0:0:1" Value="1.0" /> |
143 | 144 | <SplineDoubleKeyFrame KeyTime="0:0:4" Value="0.0" /> |
144 | 145 | </DoubleAnimationUsingKeyFrames> |
145 | 146 | <DoubleAnimation Storyboard.TargetName="RotateTransform" |
146 | | - Storyboard.TargetProperty="Angle" |
147 | | - RepeatBehavior="Forever" |
148 | | - From="00" To="359" Duration="0:0:1.25" /> |
| 147 | + Storyboard.TargetProperty="Angle" |
| 148 | + RepeatBehavior="Forever" |
| 149 | + From="00" To="359" Duration="0:0:1.25" /> |
149 | 150 | </Storyboard> |
150 | 151 | </ControlTemplate.Resources> |
151 | 152 | <Grid x:Name="TemplateRoot" ClipToBounds="False"> |
|
158 | 159 | <Canvas> |
159 | 160 | <Ellipse Fill="{TemplateBinding Background}" Width="{TemplateBinding Width}" Height="{TemplateBinding Height}" /> |
160 | 161 | <Path x:Name="Path" Stroke="{TemplateBinding Foreground}" StrokeThickness="3" |
161 | | - Canvas.Top="2" Canvas.Left="2" |
162 | | - RenderTransformOrigin="0, 0"> |
| 162 | + Canvas.Top="2" Canvas.Left="2" |
| 163 | + RenderTransformOrigin="0, 0"> |
163 | 164 | <Path.Data> |
164 | 165 | <PathGeometry> |
165 | 166 | <PathFigure StartPoint="{Binding ElementName=PathGrid, Path=ActualWidth, Converter={StaticResource StartPointConverter}, Mode=OneWay}"> |
166 | | - <ArcSegment Size="{Binding ElementName=PathGrid, Path=ActualWidth, Converter={StaticResource ArcSizeConverter}, Mode=OneWay}" |
167 | | - SweepDirection="Clockwise" |
168 | | - > |
| 167 | + <ArcSegment Size="{Binding ElementName=PathGrid, Path=ActualWidth, Converter={StaticResource ArcSizeConverter}, Mode=OneWay}" |
| 168 | + SweepDirection="Clockwise"> |
169 | 169 | <ArcSegment.IsLargeArc> |
170 | 170 | <MultiBinding Converter="{StaticResource LargeArcConverter}"> |
171 | 171 | <Binding RelativeSource="{RelativeSource TemplatedParent}" Path="Value" /> |
|
190 | 190 | <Path.RenderTransform> |
191 | 191 | <TransformGroup> |
192 | 192 | <RotateTransform x:Name="RotateTransform" |
193 | | - CenterX="{Binding ElementName=PathGrid, Path=ActualWidth, Converter={StaticResource RotateTransformCentreConverter}, Mode=OneWay}" |
194 | | - CenterY="{Binding ElementName=PathGrid, Path=ActualWidth, Converter={StaticResource RotateTransformCentreConverter}, Mode=OneWay}"> |
| 193 | + CenterX="{Binding ElementName=PathGrid, Path=ActualWidth, Converter={StaticResource RotateTransformCentreConverter}, Mode=OneWay}" |
| 194 | + CenterY="{Binding ElementName=PathGrid, Path=ActualWidth, Converter={StaticResource RotateTransformCentreConverter}, Mode=OneWay}"> |
195 | 195 | <RotateTransform.Angle> |
196 | 196 | <MultiBinding Converter="{StaticResource RotateTransformConverter}"> |
197 | 197 | <Binding RelativeSource="{RelativeSource TemplatedParent}" Path="Value" /> |
|
206 | 206 | </Canvas> |
207 | 207 | </Grid> |
208 | 208 | <ControlTemplate.Triggers> |
209 | | - <MultiTrigger> |
210 | | - <MultiTrigger.Conditions> |
211 | | - <Condition Property="IsIndeterminate" Value="True" /> |
212 | | - <Condition Property="IsVisible" Value="True" /> |
213 | | - </MultiTrigger.Conditions> |
214 | | - <MultiTrigger.EnterActions> |
| 209 | + <MultiDataTrigger> |
| 210 | + <MultiDataTrigger.Conditions> |
| 211 | + <Condition Binding="{Binding IsIndeterminate, RelativeSource={RelativeSource Self}}" Value="True" /> |
| 212 | + <Condition Binding="{Binding IsVisible, RelativeSource={RelativeSource Self}}" Value="True" /> |
| 213 | + <Condition Binding="{Binding Value, RelativeSource={RelativeSource Self}, Converter={StaticResource NotZeroConverter}}" Value="True" /> |
| 214 | + </MultiDataTrigger.Conditions> |
| 215 | + <MultiDataTrigger.EnterActions> |
215 | 216 | <RemoveStoryboard BeginStoryboardName="IsFullyIndeterminateStoryboard" /> |
216 | 217 | <BeginStoryboard Storyboard="{StaticResource IsIndeterminateStoryboard}" |
217 | | - Name="IsIndeterminateStoryboard"/> |
218 | | - </MultiTrigger.EnterActions> |
219 | | - <MultiTrigger.ExitActions> |
| 218 | + Name="IsIndeterminateStoryboard"/> |
| 219 | + </MultiDataTrigger.EnterActions> |
| 220 | + <MultiDataTrigger.ExitActions> |
220 | 221 | <RemoveStoryboard BeginStoryboardName="IsIndeterminateStoryboard" /> |
221 | | - </MultiTrigger.ExitActions> |
222 | | - </MultiTrigger> |
| 222 | + </MultiDataTrigger.ExitActions> |
| 223 | + </MultiDataTrigger> |
223 | 224 | <MultiTrigger> |
224 | 225 | <MultiTrigger.Conditions> |
225 | 226 | <Condition Property="IsIndeterminate" Value="True" /> |
|
229 | 230 | <MultiTrigger.EnterActions> |
230 | 231 | <RemoveStoryboard BeginStoryboardName="IsIndeterminateStoryboard" /> |
231 | 232 | <BeginStoryboard Storyboard="{StaticResource IsFullyIndeterminateScaleStoryboard}" |
232 | | - Name="IsFullyIndeterminateStoryboard"/> |
| 233 | + Name="IsFullyIndeterminateStoryboard"/> |
233 | 234 | </MultiTrigger.EnterActions> |
234 | 235 | <MultiTrigger.ExitActions> |
235 | 236 | <RemoveStoryboard BeginStoryboardName="IsFullyIndeterminateStoryboard" /> |
|
0 commit comments