您好我正在使用WPF应用程序,我已使用进度条显示下载进度。这是我的代码:
<ProgressBar x:Name="DownloadProgress" Value="100" Maximum="100" Margin="2" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Foreground="#FF222222" Background="Transparent" FlowDirection="RightToLeft" BorderThickness="0"/>
进度条的设计使得它看起来像是在发现一些东西,因此进度值从100结束时开始为0.问题是在Windows 10机器上它的工作原理与它应该如下所示:{{3} } 但在Windows 7机器上它看起来像这样: 这太可怕了。任何人都可以帮我找出为什么进度条看起来像在Windows 7上看起来完美的设计在Windows 10上
答案 0 :(得分:2)
您需要在进度条中设置样式。实际发生的是,WPF应用程序默认根据操作系统为您的应用程序加载主题。所以当你设置前景属性时
<Grid x:Name="PART_Indicator" ClipToBounds="true" HorizontalAlignment="Left">
<Rectangle x:Name="Indicator" Fill="{TemplateBinding Foreground}"/>
<Rectangle x:Name="Animation" Fill="{TemplateBinding Foreground}" RenderTransformOrigin="0.5,0.5">
<Rectangle.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform/>
<TranslateTransform/>
</TransformGroup>
</Rectangle.RenderTransform>
</Rectangle>
</Grid>
矩形命名指示器引导模板Fill,它会为您提供这种令人厌恶的颜色变化,这种颜色会改变为您喜欢的颜色,这应该可以解决问题。 所以你的更新代码将是:
<Grid x:Name="PART_Indicator" ClipToBounds="true" HorizontalAlignment="Left">
<Rectangle x:Name="Indicator" Fill="#FF222222"/>
<Rectangle x:Name="Animation" Fill="#FF222222" RenderTransformOrigin="0.5,0.5">
<Rectangle.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform/>
<TranslateTransform/>
</TransformGroup>
</Rectangle.RenderTransform>
</Rectangle>
</Grid>