进行酒吧控制的旧样式

时间:2019-02-28 08:29:36

标签: c# .net wpf

我正在使用进度栏控件,但是我需要使用旧的Windows风格,就像我们在progress bar第一个窗口中有酒吧一样:

  

下图显示了使用视觉样式的进度条。控件的外观将取决于操作系统

但是它必须独立于os才能帮助我朝正确的方向

1 个答案:

答案 0 :(得分:0)

这应该为您解决问题!随时根据您的需要进行修改!

<Style TargetType="{x:Type ProgressBar}">
    <Setter Property="Foreground" Value="DarkBlue"/>
    <Setter Property="BorderBrush" Value="Gray"/>
    <Setter Property="Padding" Value="1"/>
    <Setter Property="Value" Value="10"/>
    <Setter Property="Minimum" Value="0"/>
    <Setter Property="Maximum" Value="100"/>
    <Setter Property="BorderThickness" Value="1"/>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type ProgressBar}">
                <Border BorderThickness="{TemplateBinding BorderThickness}"  Width="{TemplateBinding Width}" MinWidth="10" Height="{TemplateBinding Height}" BorderBrush="{TemplateBinding BorderBrush}" Background="{TemplateBinding Background}">
                    <Viewbox HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Stretch="Fill" Margin="{TemplateBinding Padding}">
                        <Grid Width="{TemplateBinding Maximum}" Height="50">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="Auto"/>
                                <ColumnDefinition Width="*"/>

                            </Grid.ColumnDefinitions>
                            <Grid Background="{TemplateBinding Foreground}" Grid.Column="0" Width="{TemplateBinding Value}">


                            </Grid>
                        </Grid>
                    </Viewbox>
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

这是一种非常基本的样式,但可以作为良好的基础。如果您不熟悉样式,则只需将此代码放置在Window的<Window.Resources>标签内即可