2014-10-17 4 views
1

Я использую следующий ProgressBarStyle:WPF Progressbar Прямоугольник

<Style TargetType="{x:Type ProgressBar}"> 
<Setter Property="Template"> 
    <Setter.Value> 
     <ControlTemplate TargetType="{x:Type ProgressBar}"> 
      <Grid MinHeight="14" MinWidth="400" Background="{TemplateBinding Background}"> 
       <Border x:Name="PART_Track" CornerRadius="2" BorderThickness="1"> 
        <Border.BorderBrush> 
         <SolidColorBrush Color="#FFFFFF" /> 
        </Border.BorderBrush> 
       </Border> 
       <Border x:Name="PART_Indicator" CornerRadius="2" BorderThickness="1" HorizontalAlignment="Left" 
         Background="{TemplateBinding Foreground}" Margin="0,-1,0,1"> 
        <Grid ClipToBounds="True" x:Name="Animation"> 
         <Rectangle x:Name="PART_GlowRect" Width="200" HorizontalAlignment="Left" 
            Fill="#3399FF" Margin="0,0,0,0" /> 
        </Grid> 
       </Border> 
      </Grid>      
     </ControlTemplate> 
    </Setter.Value> 
</Setter> 
<Setter Property="Foreground" Value="#404040"/> 
</Style> 

Это работает нормально, но я хочу, чтобы отобразить три прямоугольника с различными цветами в то время (левый, центральный, правый) в качестве индикатора части, как могу ли я достичь этого?

+0

Где точно вы хотели бы отобразить три прямоугольника? Картина действительно поможет здесь. Но если вы хотите изменить индикаторную часть на три прямоугольника, просто добавьте еще два в свою анимационную сетку. – qqbenq

+0

Я хочу изменить часть индикатора на три прямоугольника, в сетке анимации, когда я добавлял еще два прямоугольника в сетку, а затем новые добавленные прямоугольники определяли цвета, не перемещаемые как «PART_GlowRect». Я хочу переместить три цвета (слева, в центре, справа) одновременно в строке выполнения, например, в настоящее время перемещать один цвет. Любая помощь будет оценена по достоинству. –

ответ

3

Вы должны изменить PART_GlowRect быть Border вместо Rectangle, и добавьте нужные прямоугольники в том, что:

<Border x:Name="PART_Indicator" CornerRadius="2" BorderThickness="1" HorizontalAlignment="Left" 
     Background="{TemplateBinding Foreground}" Margin="0,-1,0,1"> 
    <Grid ClipToBounds="True" x:Name="Animation"> 
     <Border x:Name="PART_GlowRect" Width="150" HorizontalAlignment="Left" 
        Background="Transparent" Margin="0,0,0,0" > 
      <Grid> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition Width="*" /> 
        <ColumnDefinition Width="*" /> 
        <ColumnDefinition Width="*" /> 
       </Grid.ColumnDefinitions> 
       <Rectangle Grid.Column="0" Fill="Red" /> 
       <Rectangle Grid.Column="1" Fill="Green" /> 
       <Rectangle Grid.Column="2" Fill="Blue" /> 
      </Grid> 
     </Border> 
    </Grid> 
</Border> 

Вот как это будет выглядеть следующим образом:

progressbar

Смежные вопросы