【问题标题】:How do you change the colors on a WPF progressbar如何更改 WPF 进度条上的颜色
【发布时间】:2010-03-05 21:11:00
【问题描述】:

我有一个 WPF、vista 风格的进度条,我想在上面更改画笔。我已经将前景画笔设置为另一种颜色,但有一种嗖嗖的动画效果,其颜色仍然是默认的绿色。我该如何更改?

【问题讨论】:

    标签: c# wpf progress-bar


    【解决方案1】:

    为此,您需要编辑项目中进度条控件的 ControlTemplate 样式。

    <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

    【讨论】:

      猜你喜欢
      • 2016-11-02
      • 2014-10-08
      • 1970-01-01
      • 2017-11-18
      • 1970-01-01
      • 2014-06-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多