2015-06-07 12 views
5

Ho l'applicazione WPF con ListView e ProgressBar all'interno. definisco questo colore come Foreground alla mia ProgressBar:WPF: perché il mio colore in primo piano sembra diverso sotto diversi sistemi operativi

enter image description here

sotto Windows 8 posso vedere questo colore, ma sotto Windows 7 posso vedere colore diverso:

enter image description here

Quindi la mia domanda è è è possibile vedere il mio colore desiderato in tutti i sistemi operativi?

Edit:

Questo è lo stile che ho creato:

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

E questo è il mio ProgressBar:

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

Ma il colore non è cambiato.

+0

uno sguardo a questa domanda già risposto: http://stackoverflow.com/ questions/4734814/wpf-progressbar-foreground-color Forse funziona con Windows 7. – dognose

risposta

1

E 'molto semplice, basta usare la vostra stile per modificare il bordo, la griglia PART_Track e il rettangolo all'interno (che è la parte di avanzamento del controllo generale).

Ecco un esempio in cui ho fatto lo sfondo di tutta la faccenda bianco, il nero di frontiera - e la parte di avanzamento blu:

<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> 

Questo non dovrebbe variare tra Windows 7 o 8!

Quindi, con uno sfondo bianco: enter image description here

O con uno sfondo verde:

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

enter image description here

+0

E il colore di sfondo?provo a cambiarlo da bianco a qualcos'altro, ma questo rimase bianco –

+0

Nel mio esempio, basta cambiare Sfondo = "Bianco" a Sfondo = "Viola" (nella parte

3

In base alle impostazioni predefinite, WPF preleva i colori di sistema (in base al sistema operativo) se non sono stati forniti stili per i controlli. Se si desidera eseguire stile unico attraverso cui tutti i sistemi operativi allora dovete ignorare gli stili dei controlli e devono unire gli stili XAML per la vostra applicazione Per Es:

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

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

Vedi la mia definizione di ProgressBar, cosa devo cambiare nel mio caso? –

+0

è necessario sovrascrivere lo stile del controllo barra di avanzamento, non del colore di primo piano o del colore di sfondo. Cambia solo il colore del controllo non lo stile del controllo – ReeganLourduraj

+0

Vedi il mio aggiornamento, ho creato un nuovo stile e aggiungo questo stile nella barra di avanzamento, ma sembra che qualcosa non funzioni perché non funziona. –

Problemi correlati