2010-03-05 1 views
2

У меня есть WPF, индикатор прогресса стиля, на который я хочу изменить кисти. Я установил кисть переднего плана на другой цвет, но есть какой-то эффект анимации whoosh, цвет которого по-прежнему является зеленым по умолчанию. Как я могу это изменить?Как вы меняете цвета на панели прогресса WPF

ответ

9

Для этого вам необходимо отредактировать стили ControlTemplate для элемента управления Progress Bar в вашем проекте.

<Style x:Key="{x:Type ProgressBar}" 
    TargetType="{x:Type ProgressBar}"> 
    <Setter Property="Template"> 
    <Setter.Value> 
     <ControlTemplate TargetType="{x:Type ProgressBar}"> 
     <Grid MinHeight="14" MinWidth="200"> 
      <Border 
      Name="PART_Track" 
      CornerRadius="2" 
      Background="{StaticResource PressedBrush}" 
      BorderBrush="{StaticResource SolidBorderBrush}" 
      BorderThickness="1" /> 
      <Border 
      Name="PART_Indicator" 
      CornerRadius="2" 
      Background="{StaticResource DarkBrush}" 
      BorderBrush="{StaticResource NormalBorderBrush}" 
      BorderThickness="1" 
      HorizontalAlignment="Left" /> 
     </Grid> 
     </ControlTemplate> 
    </Setter.Value> 
    </Setter> 
</Style> 

Пример использования этих стилей:

<LinearGradientBrush x:Key="PressedBrush" StartPoint="0,0" EndPoint="0,1"> 
    <GradientBrush.GradientStops> 
    <GradientStopCollection> 
     <GradientStop Color="#BBB" Offset="0.0"/> 
     <GradientStop Color="#EEE" Offset="0.1"/> 
     <GradientStop Color="#EEE" Offset="0.9"/> 
     <GradientStop Color="#FFF" Offset="1.0"/> 
    </GradientStopCollection> 
    </GradientBrush.GradientStops> 
</LinearGradientBrush> 


... 


<SolidColorBrush x:Key="SolidBorderBrush" Color="#888" /> 


... 


<LinearGradientBrush x:Key="DarkBrush" StartPoint="0,0" EndPoint="0,1"> 
    <GradientBrush.GradientStops> 
    <GradientStopCollection> 
     <GradientStop Color="#FFF" Offset="0.0"/> 
     <GradientStop Color="#AAA" Offset="1.0"/> 
    </GradientStopCollection> 
    </GradientBrush.GradientStops> 
</LinearGradientBrush> 


... 


<LinearGradientBrush x:Key="NormalBorderBrush" StartPoint="0,0" EndPoint="0,1"> 
    <GradientBrush.GradientStops> 
    <GradientStopCollection> 
     <GradientStop Color="#CCC" Offset="0.0"/> 
     <GradientStop Color="#444" Offset="1.0"/> 
    </GradientStopCollection> 
    </GradientBrush.GradientStops> 
</LinearGradientBrush> 

Вы можете увидеть пример этого на MSDN: ProgressBar ControlTemplate Example