2009-12-30 8 views
0

Je vais avoir un léger problème avec reskinning un ProgressBar en WPF. Plus précisément, peu importe ce que je fais, il semble que l'indicateur interne soit à environ 99%. J'ai essayé toutes sortes de choses, de l'écrêtage à OpacityMask, mais je n'arrive pas à empêcher le top de couper. Des idées ce qui se passe ici?clips ProgressBar Le haut de la valeur

code:

<Style x:Key="BarrelStyle" TargetType="{x:Type ProgressBar}"> 
     <Setter Property="Value" Value="100" /> 
     <Setter Property="Orientation" Value="Vertical" /> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="{x:Type ProgressBar}"> 
        <Grid> 
         <Border CornerRadius="10" BorderThickness="1" Padding="3,3,3,3" x:Name="PART_Track" Background="Blue"> 
          <Border x:Name="PART_Indicator" CornerRadius="10" BorderBrush="#FFC06565" BorderThickness="0" HorizontalAlignment="Stretch" VerticalAlignment="Bottom"> 
           <Grid> 
            <Border x:Name="Indicator_Content" CornerRadius="10" Background="Red" BorderBrush="White" BorderThickness="1"/> 
            <Border x:Name="Indicator_Gloss" CornerRadius="10" > 
             <Border.Background> 
              <LinearGradientBrush EndPoint="1.0,0.5" StartPoint="0.05,0.5"> 
               <GradientStop Color="#75000000" Offset="0"/> 
               <GradientStop Color="#7EFFFFFF" Offset="0.5"/> 
               <GradientStop Color="#75000000" Offset="1"/> 
              </LinearGradientBrush> 
             </Border.Background> 
            </Border> 
           </Grid> 
          </Border> 
         </Border> 
        </Grid> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 
+0

Ceci est différent du comportement par défaut? – GraemeF

Répondre

1

Essayez de régler la plus Grille intérieure de Margin="0,4" et réglez "PART_Indicator" Margin="0,0,0,-4". Ou utilisez simplement le code ci-dessous:

<Style x:Key="BarrelStyle" TargetType="{x:Type ProgressBar}"> 
    <Setter Property="Value" Value="100" /> 
    <Setter Property="Orientation" Value="Vertical" /> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type ProgressBar}"> 
       <Grid> 
        <Border CornerRadius="10" BorderThickness="1" Padding="3,3,3,3" x:Name="PART_Track" Background="Blue"> 
         <Border x:Name="PART_Indicator" CornerRadius="10" BorderBrush="#FFC06565" BorderThickness="0" HorizontalAlignment="Stretch" VerticalAlignment="Bottom" Margin="0,0,0,-4"> 
          <Grid Margin="0,4"> 
           <Border x:Name="Indicator_Content" CornerRadius="10" Background="Red" BorderBrush="White" BorderThickness="1"/> 
           <Border x:Name="Indicator_Gloss" CornerRadius="10" > 
            <Border.Background> 
             <LinearGradientBrush EndPoint="1.0,0.5" StartPoint="0.05,0.5"> 
              <GradientStop Color="#75000000" Offset="0"/> 
              <GradientStop Color="#7EFFFFFF" Offset="0.5"/> 
              <GradientStop Color="#75000000" Offset="1"/> 
             </LinearGradientBrush> 
            </Border.Background> 
           </Border> 
          </Grid> 
         </Border> 
        </Border> 
       </Grid> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 
+0

Oui, cela fonctionne. Fondamentalement, en mettant tout dans une nouvelle frontière, j'ai ce dont j'avais besoin. Merci! –