我的WPF
应用ListView
和ProgressBar
。
我将此颜色定义为Foreground
的{{1}}:
在ProgressBar
下我可以看到这种颜色,但在Windows 8
下我可以看到不同的颜色:
所以我的问题是,是否有可能在所有操作系统中看到我的欲望颜色?
编辑:
这是我创建的风格:
Windows 7
这是我的<Style x:Key="CustomProgressBar" TargetType="ProgressBar" >
<Setter Property="Foreground" Value="#FF15669E"></Setter>
</Style>
:
ProgressBar
但颜色没有改变。
答案 0 :(得分:3)
默认情况下,如果您没有为控件提供任何样式,WPF会选择系统颜色(基于操作系统)。如果要在所有操作系统中运行独特的样式,则必须覆盖控件的样式,并且必须将样式Xaml合并到应用程序中 对于Ex:
<Style x:Key="ButtonStyle" TargetType="Button">
<Setter Property="Background" Value="Red"/>
</Style>
<Button Style="{StaticResource ButtonStyle}" />
答案 1 :(得分: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>
这在Windows 7或8之间不应有所不同!
所以白色背景:
或者带有绿色背景:
<Border BorderBrush="Black" BorderThickness="1" Background="Green" CornerRadius="0" Padding="0">