Windows 7 WPF上的进度条

时间:2016-09-08 07:29:08

标签: wpf xaml windows-7

您好我正在使用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机器上它看起来像这样: How it's supposed to look and it is the same in windows 10这太可怕了。任何人都可以帮我找出为什么进度条看起来像在Windows 7上看起来完美的设计在Windows 10上

1 个答案:

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