2015-06-07 4 views
5

Ich habe WPF Anwendung mit ListView und ProgressBar innerhalb. definiere ich diese Farbe als Foreground meiner ProgressBar:WPF: Warum meine Vordergrundfarbe Unterschiede unter verschiedenen OS

enter image description here

unter Windows 8 ich diese Farbe aber unter Windows 7 sehen kann ich andere Farbe sehen kann:

meine Frage ist enter image description here

So ist es möglich, meine Wunschfarbe in allen OS zu sehen?

Edit:

Dies ist der Stil i erstellt:

<Style x:Key="CustomProgressBar" TargetType="ProgressBar" > 
    <Setter Property="Foreground" Value="#FF15669E"></Setter> 
</Style> 

Und das ist mein ProgressBar:

<ProgressBar Name="prog" Maximum="100" Value="{Binding Progress}" 
      Width="{Binding Path=Width, ElementName=ProgressCell}" Background="#FFD3D0D0" Style="{StaticResource CustomProgressBar}"/> 

Aber die Farbe nicht verändert hat.

+0

haben einen Blick auf diese bereits beantworteten Frage: http://stackoverflow.com/ Fragen/4734814/wpf-progressbar-foreground-color Vielleicht funktioniert das mit Windows 7. – dognose

Antwort

1

Es ist ganz einfach, Sie müssen nur Ihre verwenden Stil, um das Border-, PART_Track-Gitter und das Rechteck im Inneren (das ist der Fortschrittsbereich des gesamten Steuerelements) zu ändern.

Hier ist ein Beispiel, wo ich den Hintergrund der ganzen Sache weiß gemacht habe, die Grenze schwarz - und der Fortschritt Teil blau:

<Style x:Key="CustomProgressBar" TargetType="ProgressBar" >    
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="ProgressBar"> 
       <Border BorderBrush="Black" BorderThickness="1" Background="White" CornerRadius="0" Padding="0"> 
        <Grid x:Name="PART_Track"> 
         <Rectangle x:Name="PART_Indicator" HorizontalAlignment="Left" Fill="Blue" /> 
        </Grid> 
       </Border> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

Dies sollte nicht zwischen Windows 7 oder 8 variieren!

So mit einem weißen Hintergrund: enter image description here

Oder mit einem grünen Hintergrund:

<Border BorderBrush="Black" BorderThickness="1" Background="Green" CornerRadius="0" Padding="0"> 

enter image description here

+0

Was ist mit der Hintergrundfarbe?Ich versuche, es von Weiß zu etwas anderem zu ändern, aber das blieb Weiß –

+0

In meinem Beispiel ändere einfach Hintergrund = "Weiß" zu Hintergrund = "Lila" (in der

3

Bei Standard nimmt WPF Systemfarben (basierend auf OS), wenn Sie keine Stile für die Kontrollen vorsah. Wenn Sie einzigartigen Stil durch aus allen OS ausgeführt werden soll, dann müssen Sie Arten der Kontrollen außer Kraft setzen und Styles XAML an Ihre Anwendung Für Ex fusionieren müssen:

<Style x:Key="ButtonStyle" TargetType="Button"> 
     <Setter Property="Background" Value="Red"/> 
    </Style> 

    <Button Style="{StaticResource ButtonStyle}" /> 
+0

Bitte sehen Sie meine ProgressBar Definition, was ich in meinem Fall ändern muss? –

+0

Sie müssen den Stil der Statusleiste nicht Vordergrundfarbe oder Hintergrundfarbe überschreiben. Es ändert nur die Farbe der Kontrolle nicht Stil der Kontrolle – ReeganLourduraj

+0

Bitte sehen Sie mein Update, ich habe einen neuen Stil erstellt und fügen Sie diesen Stil in meine Fortschrittsbalken, aber es scheint, dass etwas nicht stimmt, weil dies nicht funktioniert. –

Verwandte Themen