WPF中怎么自定义ProgressBar滚动条样式-创新互联

本篇文章为大家展示了WPF中怎么自定义ProgressBar滚动条样式,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

目前创新互联已为近千家的企业提供了网站建设、域名、雅安服务器托管、网站托管维护、企业网站设计、贡嘎网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

一、前言

滚动条一般用于加载进度,我们在看视频的时候或者在浏览网页的时候经常能看到加载进度的页面。在程序开发中,默认的进度加载样式可能跟程序风格不太一样,或者加载进度的时候需要更改一下加载的样式。这个时候就需要通过修改ProgressBar的样式来实现。

二、ProgressBar的基本样式

ProgressBar的基本样式很简单:

<Style TargetType="{x:Type ProgressBar}">   <Setter Property="FocusVisualStyle" Value="{x:Null}"/>   <Setter Property="SnapsToDevicePixels" Value="True"/>   <Setter Property="Height" Value="15"/>   <Setter Property="Background" Value="#6fae5f"/>   <Setter Property="FontSize" Value="10"/>   <Setter Property="Padding" Value="5,0"/>   <Setter Property="Template">    <Setter.Value>     <ControlTemplate TargetType="{x:Type ProgressBar}">      <Grid Background="#00000000">       <Grid.RowDefinitions>        <RowDefinition Height="Auto"/>       </Grid.RowDefinitions>       <VisualStateManager.VisualStateGroups>        <VisualStateGroup x:Name="CommonStates">         <VisualState x:Name="Determinate"/>         <VisualState x:Name="Indeterminate">          <Storyboard RepeatBehavior="Forever">           <PointAnimationUsingKeyFrames Storyboard.TargetName="Animation" Storyboard.TargetProperty="(UIElement.RenderTransformOrigin)">            <EasingPointKeyFrame KeyTime="0:0:0" Value="0.5,0.5"/>            <EasingPointKeyFrame KeyTime="0:0:1.5" Value="1.95,0.5"/>            <EasingPointKeyFrame KeyTime="0:0:3" Value="0.5,0.5"/>           </PointAnimationUsingKeyFrames>          </Storyboard>         </VisualState>        </VisualStateGroup>       </VisualStateManager.VisualStateGroups>              <Grid Height="{TemplateBinding Height}">        <Border Background="#000000" CornerRadius="7.5" Opacity="0.05"/>        <Border BorderBrush="#000000" BorderThickness="1" CornerRadius="7.5" Opacity="0.1"/>        <Grid Margin="{TemplateBinding BorderThickness}">         <Border x:Name="PART_Track"/>         <Grid x:Name="PART_Indicator" ClipToBounds="True" HorizontalAlignment="Left" >          <Grid.ColumnDefinitions>           <ColumnDefinition x:Name="width2"/>           <ColumnDefinition x:Name="width3" Width="0"/>          </Grid.ColumnDefinitions>          <Grid x:Name="Animation" RenderTransformOrigin="0.5,0.5">           <Grid.RenderTransform>            <TransformGroup>             <ScaleTransform ScaleY="-1" ScaleX="1"/>             <SkewTransform AngleY="0" AngleX="0"/>             <RotateTransform Angle="180"/>             <TranslateTransform/>            </TransformGroup>           </Grid.RenderTransform>           <Border Background="{TemplateBinding Background}" CornerRadius="7.5">            <Viewbox HorizontalAlignment="Left" StretchDirection="DownOnly" Margin="{TemplateBinding Padding}" SnapsToDevicePixels="True">             <TextBlock Foreground="#ffffff" SnapsToDevicePixels="True" FontSize="{TemplateBinding FontSize}" VerticalAlignment="Center" Text="{Binding RelativeSource={RelativeSource TemplatedParent},Path=Value,StringFormat={}{0}%}" RenderTransformOrigin="0.5,0.5">              <TextBlock.RenderTransform>               <TransformGroup>                <ScaleTransform ScaleY="1" ScaleX="-1"/>                <SkewTransform AngleY="0" AngleX="0"/>                <RotateTransform Angle="0"/>                <TranslateTransform/>               </TransformGroup>              </TextBlock.RenderTransform>             </TextBlock>            </Viewbox>           </Border>           <Border BorderBrush="#000000" BorderThickness="1" CornerRadius="7.5" Opacity="0.1"/>          </Grid>         </Grid>        </Grid>       </Grid>      </Grid>      <ControlTemplate.Triggers>              <Trigger Property="IsEnabled" Value="False">        <Setter Property="Background" Value="#c5c5c5"/>       </Trigger>       <Trigger Property="IsIndeterminate" Value="true">        <Setter TargetName="width2" Property="Width" Value="0.25*"/>        <Setter TargetName="width3" Property="Width" Value="0.725*"/>       </Trigger>      </ControlTemplate.Triggers>     </ControlTemplate>    </Setter.Value>   </Setter>  </Style>

引用示例:

<ProgressBar Height="15" Width="150" Value="40" Margin="10"/>

上述内容就是WPF中怎么自定义ProgressBar滚动条样式,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。

当前标题:WPF中怎么自定义ProgressBar滚动条样式-创新互联
本文链接:https://www.cdcxhl.com/article48/ddoiep.html

成都网站建设公司_创新互联,为您提供关键词优化App开发云服务器全网营销推广企业网站制作电子商务

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

手机网站建设