105 lines
7.4 KiB
XML
105 lines
7.4 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"
|
|
xmlns:converter="clr-namespace:HandyControl.Tools.Converter">
|
|
|
|
<ResourceDictionary.MergedDictionaries>
|
|
<ResourceDictionary Source="../../Basic/Converters.xaml"/>
|
|
</ResourceDictionary.MergedDictionaries>
|
|
|
|
<LinearGradientBrush x:Key="ProgressBarIndicatorAnimatedFill" EndPoint="0,0" MappingMode="Absolute" StartPoint="-100,0">
|
|
<GradientStop Color="#00000000" Offset="0"/>
|
|
<GradientStop Color="#FF000000" Offset="0.4"/>
|
|
<GradientStop Color="#FF000000" Offset="0.6"/>
|
|
<GradientStop Color="#00000000" Offset="1"/>
|
|
</LinearGradientBrush>
|
|
|
|
<Style x:Key="ProgressBarBaseStyle" TargetType="{x:Type 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="{x:Type ProgressBar}">
|
|
<Grid 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"/>
|
|
<Grid HorizontalAlignment="Left">
|
|
<Decorator x:Name="PART_Indicator" HorizontalAlignment="Left">
|
|
<Border CornerRadius="{Binding Path=(controls:BorderElement.CornerRadius),RelativeSource={RelativeSource TemplatedParent}}" ClipToBounds="true" Background="{TemplateBinding Foreground}">
|
|
<Rectangle x:Name="Animation" Fill="#60ffffff">
|
|
<Rectangle.OpacityMask>
|
|
<MultiBinding>
|
|
<MultiBinding.Converter>
|
|
<converter:ProgressBarHighlightConverter/>
|
|
</MultiBinding.Converter>
|
|
<Binding Source="{StaticResource ProgressBarIndicatorAnimatedFill}"/>
|
|
<Binding ElementName="TemplateRoot" Path="ActualWidth"/>
|
|
<Binding ElementName="TemplateRoot" Path="ActualHeight"/>
|
|
</MultiBinding>
|
|
</Rectangle.OpacityMask>
|
|
</Rectangle>
|
|
</Border>
|
|
</Decorator>
|
|
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="{DynamicResource TextIconBrush}" Text="{Binding Value,RelativeSource={RelativeSource TemplatedParent},StringFormat={}{0} %}"/>
|
|
</Grid>
|
|
</Grid>
|
|
</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>
|
|
<Grid 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>
|
|
</Grid>
|
|
<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="controls:BorderElement.CornerRadius" Value="4"/>
|
|
<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} %}"></Setter>
|
|
<Setter Property="Template">
|
|
<Setter.Value>
|
|
<ControlTemplate TargetType="controls:CircleProgressBar">
|
|
<Grid 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}"/>
|
|
</Grid>
|
|
</ControlTemplate>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</Style>
|
|
|
|
</ResourceDictionary> |