ProgressBarStyle.xaml 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  2. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  3. xmlns:local="clr-namespace:AIRS">
  4. <!--进度条样式-->
  5. <LinearGradientBrush x:Key="ProgressBar.Progress" StartPoint="0,-0.15" EndPoint="0.04,0.04" SpreadMethod="Reflect">
  6. <GradientStop Color="Transparent" Offset="0.5"/>
  7. <GradientStop Color="#FFAAD44E" Offset="0.5"/>
  8. <GradientStop Color="#FFB2FA14" Offset="0.499"/>
  9. </LinearGradientBrush>
  10. <SolidColorBrush x:Key="ProgressBar.Background" Color="Black"/>
  11. <Style x:Key="ProgressBarStyle" TargetType="{x:Type ProgressBar}">
  12. <Setter Property="Foreground" Value="{StaticResource ProgressBar.Progress}"/>
  13. <Setter Property="Background" Value="{StaticResource ProgressBar.Background}"/>
  14. <Setter Property="BorderThickness" Value="0"/>
  15. <Setter Property="Template">
  16. <Setter.Value>
  17. <ControlTemplate TargetType="{x:Type ProgressBar}">
  18. <Grid x:Name="TemplateRoot">
  19. <VisualStateManager.VisualStateGroups>
  20. <VisualStateGroup x:Name="CommonStates">
  21. <VisualState x:Name="Determinate"/>
  22. <VisualState x:Name="Indeterminate">
  23. <Storyboard RepeatBehavior="Forever">
  24. <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)" Storyboard.TargetName="Animation">
  25. <EasingDoubleKeyFrame KeyTime="0" Value="0.25"/>
  26. <EasingDoubleKeyFrame KeyTime="0:0:1" Value="0.25"/>
  27. <EasingDoubleKeyFrame KeyTime="0:0:2" Value="0.25"/>
  28. </DoubleAnimationUsingKeyFrames>
  29. <PointAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransformOrigin)" Storyboard.TargetName="Animation">
  30. <EasingPointKeyFrame KeyTime="0" Value="-0.5,0.5"/>
  31. <EasingPointKeyFrame KeyTime="0:0:1" Value="0.5,0.5"/>
  32. <EasingPointKeyFrame KeyTime="0:0:2" Value="1.5,0.5"/>
  33. </PointAnimationUsingKeyFrames>
  34. </Storyboard>
  35. </VisualState>
  36. </VisualStateGroup>
  37. </VisualStateManager.VisualStateGroups>
  38. <Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="20" Background="{TemplateBinding Background}"/>
  39. <Rectangle x:Name="PART_Track" RadiusX="20" RadiusY="20"/>
  40. <Grid x:Name="PART_Indicator" ClipToBounds="true" HorizontalAlignment="Left">
  41. <Rectangle x:Name="Indicator" Fill="{TemplateBinding Foreground}" RadiusX="20" RadiusY="20"/>
  42. <Rectangle x:Name="Animation" Fill="{TemplateBinding Foreground}" RenderTransformOrigin="0.5,0.5" RadiusX="20" RadiusY="20">
  43. <Rectangle.RenderTransform>
  44. <TransformGroup>
  45. <ScaleTransform/>
  46. <SkewTransform/>
  47. <RotateTransform/>
  48. <TranslateTransform/>
  49. </TransformGroup>
  50. </Rectangle.RenderTransform>
  51. </Rectangle>
  52. </Grid>
  53. </Grid>
  54. <ControlTemplate.Triggers>
  55. <Trigger Property="Orientation" Value="Vertical">
  56. <Setter Property="LayoutTransform" TargetName="TemplateRoot">
  57. <Setter.Value>
  58. <RotateTransform Angle="-90"/>
  59. </Setter.Value>
  60. </Setter>
  61. </Trigger>
  62. <Trigger Property="IsIndeterminate" Value="true">
  63. <Setter Property="Visibility" TargetName="Indicator" Value="Collapsed"/>
  64. </Trigger>
  65. </ControlTemplate.Triggers>
  66. </ControlTemplate>
  67. </Setter.Value>
  68. </Setter>
  69. </Style>
  70. <!--<Style x:Key="ProgressBarStyle" TargetType="{x:Type ProgressBar}">
  71. <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
  72. <Setter Property="SnapsToDevicePixels" Value="True"/>
  73. <Setter Property="Height" Value="15"/>
  74. <Setter Property="Background" Value="#6fae5f"/>
  75. <Setter Property="FontSize" Value="10"/>
  76. <Setter Property="Padding" Value="5,0"/>
  77. <Setter Property="Template">
  78. <Setter.Value>
  79. <ControlTemplate TargetType="{x:Type ProgressBar}">
  80. <Grid Background="#00000000">
  81. <Grid.RowDefinitions>
  82. <RowDefinition Height="Auto"/>
  83. </Grid.RowDefinitions>
  84. <VisualStateManager.VisualStateGroups>
  85. <VisualStateGroup x:Name="CommonStates">
  86. <VisualState x:Name="Determinate"/>
  87. <VisualState x:Name="Indeterminate">
  88. <Storyboard RepeatBehavior="Forever">
  89. <PointAnimationUsingKeyFrames Storyboard.TargetName="Animation" Storyboard.TargetProperty="(UIElement.RenderTransformOrigin)">
  90. <EasingPointKeyFrame KeyTime="0:0:0" Value="0.5,0.5"/>
  91. <EasingPointKeyFrame KeyTime="0:0:1.5" Value="1.95,0.5"/>
  92. <EasingPointKeyFrame KeyTime="0:0:3" Value="0.5,0.5"/>
  93. </PointAnimationUsingKeyFrames>
  94. </Storyboard>
  95. </VisualState>
  96. </VisualStateGroup>
  97. </VisualStateManager.VisualStateGroups>
  98. <Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="7.5" Background="{TemplateBinding Background}"/>
  99. <Rectangle x:Name="PART_Track1" RadiusX="7.5" RadiusY="7.5"/>
  100. <Grid Height="{TemplateBinding Height}">
  101. <Border Background="DodgerBlue" CornerRadius="7.5" Opacity="0.05"/>
  102. <Border BorderBrush="DodgerBlue" BorderThickness="1" CornerRadius="7.5" Opacity="0.1"/>
  103. <Grid Margin="{TemplateBinding BorderThickness}">
  104. <Border x:Name="PART_Track"/>
  105. <Grid x:Name="PART_Indicator" ClipToBounds="True" HorizontalAlignment="Left" >
  106. <Grid.ColumnDefinitions>
  107. <ColumnDefinition x:Name="width1"/>
  108. <ColumnDefinition x:Name="width2" Width="0"/>
  109. </Grid.ColumnDefinitions>
  110. <Grid x:Name="Animation" RenderTransformOrigin="0.5,0.5">
  111. <Grid.RenderTransform>
  112. <TransformGroup>
  113. <ScaleTransform ScaleY="-1" ScaleX="1"/>
  114. <SkewTransform AngleY="0" AngleX="0"/>
  115. <RotateTransform Angle="180"/>
  116. <TranslateTransform/>
  117. </TransformGroup>
  118. </Grid.RenderTransform>
  119. <Border Background="Blue" CornerRadius="7.5">
  120. <Viewbox HorizontalAlignment="Left" StretchDirection="DownOnly" Margin="{TemplateBinding Padding}" SnapsToDevicePixels="True">
  121. <TextBlock Foreground="#ffffff" SnapsToDevicePixels="True" FontSize="{TemplateBinding FontSize}" VerticalAlignment="Center" Text="{Binding RelativeSource={RelativeSource TemplatedParent},Path=Value,StringFormat={}{0}}" RenderTransformOrigin="0.5,0.5">
  122. <TextBlock.RenderTransform>
  123. <TransformGroup>
  124. <ScaleTransform ScaleY="1" ScaleX="-1"/>
  125. <SkewTransform AngleY="0" AngleX="0"/>
  126. <RotateTransform Angle="0"/>
  127. <TranslateTransform/>
  128. </TransformGroup>
  129. </TextBlock.RenderTransform>
  130. </TextBlock>
  131. </Viewbox>
  132. </Border>
  133. <Border BorderBrush="#FF3C94D4" BorderThickness="1" CornerRadius="7.5" Opacity="0.1"/>
  134. </Grid>
  135. </Grid>
  136. </Grid>
  137. </Grid>
  138. </Grid>
  139. <ControlTemplate.Triggers>
  140. <Trigger Property="IsEnabled" Value="False">
  141. <Setter Property="Background" Value="#c5c5c5"/>
  142. </Trigger>
  143. <Trigger Property="IsIndeterminate" Value="true">
  144. <Setter TargetName="width1" Property="Width" Value="0.25*"/>
  145. <Setter TargetName="width2" Property="Width" Value="0.725*"/>
  146. </Trigger>
  147. </ControlTemplate.Triggers>
  148. </ControlTemplate>
  149. </Setter.Value>
  150. </Setter>
  151. </Style>-->
  152. </ResourceDictionary>