WPF:为什么我的前景颜色在不同的OS下看起来不同

Ver*_*int 5 wpf

我有WPF申请ListViewProgressBar内部.我定义这个颜色,Foreground我的ProgressBar:

在此输入图像描述

Windows 8我可以看到这种颜色,但在Windows 7我可以看到不同的颜色:

在此输入图像描述

所以我的问题是有可能在所有操作系统中看到我的欲望颜色吗?

编辑:

这是我创建的风格:

<Style x:Key="CustomProgressBar" TargetType="ProgressBar" >
    <Setter Property="Foreground" Value="#FF15669E"></Setter>
</Style>
Run Code Online (Sandbox Code Playgroud)

这是我的ProgressBar:

<ProgressBar Name="prog" Maximum="100" Value="{Binding Progress}" 
             Width="{Binding Path=Width, ElementName=ProgressCell}" Background="#FFD3D0D0" Style="{StaticResource CustomProgressBar}"/>
Run Code Online (Sandbox Code Playgroud)

但颜色没有改变.

Jam*_*urt 1

很简单,你只需要使用你的样式修改Border、PART_Track网格和里面的矩形(这是整体控件的进度部分)。

这是一个示例,我将整个事物的背景设置为白色,边框设置为黑色,进度部分设置为蓝色:

<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>
Run Code Online (Sandbox Code Playgroud)

这在 Windows 7 或 8 之间应该没有变化!

所以用白色背景: 在此输入图像描述

或者使用绿色背景:

<Border BorderBrush="Black" BorderThickness="1" Background="Green" CornerRadius="0" Padding="0">
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述