140 lines
10 KiB
XML
140 lines
10 KiB
XML
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:controls="clr-namespace:HandyControl.Controls"
|
|
xmlns:shapes="clr-namespace:HandyControl.Expression.Shapes">
|
|
|
|
<ResourceDictionary.MergedDictionaries>
|
|
<ResourceDictionary Source="../../Basic/Converters.xaml"/>
|
|
<ResourceDictionary Source="../Border.xaml"/>
|
|
</ResourceDictionary.MergedDictionaries>
|
|
|
|
<LinearGradientBrush x:Key="ProgressBarIndicatorAnimatedFill" StartPoint="0,0" EndPoint="1,0">
|
|
<GradientStop Color="#00FFFFFF" Offset="0"/>
|
|
<GradientStop Color="#60FFFFFF" Offset="0.4"/>
|
|
<GradientStop Color="#60FFFFFF" Offset="0.6"/>
|
|
<GradientStop Color="#00FFFFFF" Offset="1"/>
|
|
</LinearGradientBrush>
|
|
|
|
<Style x:Key="ProgressBarBaseStyle" TargetType="ProgressBar">
|
|
<Setter Property="Height" Value="20"/>
|
|
<Setter Property="controls:BorderElement.CornerRadius" Value="4"/>
|
|
<Setter Property="Background" Value="{DynamicResource SecondaryRegionBrush}"/>
|
|
<Setter Property="BorderBrush" Value="{DynamicResource BorderBrush}"/>
|
|
<Setter Property="BorderThickness" Value="0"/>
|
|
<Setter Property="Template">
|
|
<Setter.Value>
|
|
<ControlTemplate TargetType="ProgressBar">
|
|
<controls:SimplePanel x:Name="TemplateRoot">
|
|
<Border CornerRadius="{Binding Path=(controls:BorderElement.CornerRadius),RelativeSource={RelativeSource TemplatedParent}}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}"/>
|
|
<Rectangle x:Name="PART_Track"/>
|
|
<controls:SimplePanel HorizontalAlignment="Left">
|
|
<Decorator x:Name="PART_Indicator" HorizontalAlignment="Left">
|
|
<Border CornerRadius="{Binding Path=(controls:BorderElement.CornerRadius),RelativeSource={RelativeSource TemplatedParent}}" x:Name="Animation" ClipToBounds="true" Background="{TemplateBinding Foreground}">
|
|
<Rectangle x:Name="PART_GlowRect" Fill="{StaticResource ProgressBarIndicatorAnimatedFill}" HorizontalAlignment="Left" Margin="-100,0,0,0" Width="100"/>
|
|
</Border>
|
|
</Decorator>
|
|
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="{DynamicResource TextIconBrush}" Text="{Binding Value,RelativeSource={RelativeSource TemplatedParent},StringFormat={}{0} %}"/>
|
|
</controls:SimplePanel>
|
|
</controls:SimplePanel>
|
|
</ControlTemplate>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</Style>
|
|
|
|
<Style x:Key="ProgressBarStripeBaseStyle" BasedOn="{StaticResource ProgressBarBaseStyle}" TargetType="ProgressBar">
|
|
<Setter Property="Template">
|
|
<Setter.Value>
|
|
<ControlTemplate TargetType="ProgressBar">
|
|
<ControlTemplate.Resources>
|
|
<Storyboard x:Key="OnLoaded">
|
|
<DoubleAnimationUsingKeyFrames RepeatBehavior="Forever" Storyboard.TargetProperty="(Border.Background).(Brush.Transform).(TransformGroup.Children)[1].(TranslateTransform.X)" Storyboard.TargetName="Indicator">
|
|
<LinearDoubleKeyFrame KeyTime="0" Value="0"/>
|
|
<LinearDoubleKeyFrame KeyTime="0:0:.25" Value="21"/>
|
|
</DoubleAnimationUsingKeyFrames>
|
|
</Storyboard>
|
|
</ControlTemplate.Resources>
|
|
<controls:SimplePanel x:Name="TemplateRoot" SnapsToDevicePixels="true">
|
|
<Border CornerRadius="{Binding Path=(controls:BorderElement.CornerRadius),RelativeSource={RelativeSource TemplatedParent}}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}"/>
|
|
<Rectangle x:Name="PART_Track"/>
|
|
<Decorator x:Name="PART_Indicator" HorizontalAlignment="Left" Margin="1">
|
|
<Border x:Name="Indicator" CornerRadius="{Binding Path=(controls:BorderElement.CornerRadius),RelativeSource={RelativeSource TemplatedParent}}" Background="{TemplateBinding Foreground}"/>
|
|
</Decorator>
|
|
</controls:SimplePanel>
|
|
<ControlTemplate.Triggers>
|
|
<EventTrigger RoutedEvent="FrameworkElement.Loaded" SourceName="Indicator">
|
|
<BeginStoryboard Storyboard="{StaticResource OnLoaded}"/>
|
|
</EventTrigger>
|
|
</ControlTemplate.Triggers>
|
|
</ControlTemplate>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</Style>
|
|
|
|
<Style x:Key="ProgressBarCircleBaseStyle" TargetType="controls:CircleProgressBar">
|
|
<Setter Property="Background" Value="{DynamicResource SecondaryRegionBrush}"/>
|
|
<Setter Property="BorderBrush" Value="{DynamicResource BorderBrush}"/>
|
|
<Setter Property="Height" Value="100"/>
|
|
<Setter Property="Width" Value="100"/>
|
|
<Setter Property="ArcThickness" Value="4"/>
|
|
<Setter Property="Text" Value="{Binding Value,RelativeSource={RelativeSource Self},StringFormat={}{0:F0} %}"/>
|
|
<Setter Property="Template">
|
|
<Setter.Value>
|
|
<ControlTemplate TargetType="controls:CircleProgressBar">
|
|
<controls:SimplePanel x:Name="TemplateRoot">
|
|
<shapes:Arc ArcThickness="{TemplateBinding ArcThickness}" Stretch="None" EndAngle="360" Width="{TemplateBinding ActualWidth}" Height="{TemplateBinding ActualHeight}" Stroke="{TemplateBinding BorderBrush}" Fill="{TemplateBinding Background}" StrokeThickness="0"/>
|
|
<shapes:Arc ArcThickness="{TemplateBinding ArcThickness}" Stretch="None" Width="{TemplateBinding ActualWidth}" StrokeThickness="0" Height="{TemplateBinding ActualHeight}" x:Name="PART_Indicator" Fill="{TemplateBinding Foreground}"/>
|
|
<TextBlock Visibility="{Binding ShowText,RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource Boolean2VisibilityConverter}}" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="{TemplateBinding Foreground}" Text="{TemplateBinding Text}"/>
|
|
</controls:SimplePanel>
|
|
</ControlTemplate>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</Style>
|
|
|
|
<Style x:Key="ProgressBarWaveBaseStyle" TargetType="controls:WaveProgressBar">
|
|
<Setter Property="Background" Value="{DynamicResource SecondaryRegionBrush}"/>
|
|
<Setter Property="Width" Value="100"/>
|
|
<Setter Property="BorderThickness" Value="1"/>
|
|
<Setter Property="BorderBrush" Value="{DynamicResource BorderBrush}"/>
|
|
<Setter Property="Text" Value="{Binding Value,RelativeSource={RelativeSource Self},StringFormat={}{0:F0} %}"/>
|
|
<Setter Property="Template">
|
|
<Setter.Value>
|
|
<ControlTemplate TargetType="controls:WaveProgressBar">
|
|
<ControlTemplate.Resources>
|
|
<Storyboard x:Key="StoryboardOnLoaded" RepeatBehavior="Forever">
|
|
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(TranslateTransform.X)" Storyboard.TargetName="PART_Wave">
|
|
<EasingDoubleKeyFrame KeyTime="0:0:2" Value="-400"/>
|
|
</DoubleAnimationUsingKeyFrames>
|
|
</Storyboard>
|
|
</ControlTemplate.Resources>
|
|
<StackPanel>
|
|
<Border Style="{StaticResource BorderCircular}" Background="{TemplateBinding Background}" BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="{TemplateBinding BorderBrush}">
|
|
<Viewbox>
|
|
<Border x:Name="PART_Clip" Style="{StaticResource BorderClip}" CornerRadius="100" Width="200" Height="200">
|
|
<Path x:Name="PART_Wave" Stroke="{TemplateBinding WaveStroke}" StrokeThickness="{TemplateBinding WaveThickness}" HorizontalAlignment="Left" VerticalAlignment="Top" Width="600" Height="250" Fill="{TemplateBinding WaveFill}" Stretch="Fill" RenderTransformOrigin="0.5,0.5" UseLayoutRounding="False" Margin="0,0,-400,-20">
|
|
<Path.Data>
|
|
<PathGeometry>
|
|
<PathFigure StartPoint="0,1">
|
|
<PolyBezierSegment Points="0.5,1 0.5,0 1,0"/>
|
|
<PolyBezierSegment Points="1.5,0 1.5,1 2,1"/>
|
|
<PolyBezierSegment Points="2.5,1 2.5,0 3,0"/>
|
|
<PolyLineSegment Points="3,0 3,10, 0,10 0,1"/>
|
|
</PathFigure>
|
|
</PathGeometry>
|
|
</Path.Data>
|
|
</Path>
|
|
</Border>
|
|
</Viewbox>
|
|
</Border>
|
|
<TextBlock Margin="0,10,0,0" Visibility="{Binding ShowText,RelativeSource={RelativeSource TemplatedParent},Converter={StaticResource Boolean2VisibilityConverter}}" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="{TemplateBinding Foreground}" Text="{TemplateBinding Text}"/>
|
|
</StackPanel>
|
|
<ControlTemplate.Triggers>
|
|
<EventTrigger RoutedEvent="FrameworkElement.Loaded">
|
|
<BeginStoryboard Storyboard="{StaticResource StoryboardOnLoaded}"/>
|
|
</EventTrigger>
|
|
</ControlTemplate.Triggers>
|
|
</ControlTemplate>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</Style>
|
|
|
|
</ResourceDictionary> |