国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

WPF如何自定義ProgressBar滾動條樣式

2020-01-24 00:04:54
字體:
來源:轉載
供稿:網友

一、前言

滾動條一般用于加載進度,我們在看視頻的時候或者在瀏覽網頁的時候經常能看到加載進度的頁面。在程序開發中,默認的進度加載樣式可能跟程序風格不太一樣,或者加載進度的時候需要更改一下加載的樣式。這個時候就需要通過修改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="width1"/>           <ColumnDefinition x:Name="width2" 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="width1" Property="Width" Value="0.25*"/>        <Setter TargetName="width2" Property="Width" Value="0.725*"/>       </Trigger>      </ControlTemplate.Triggers>     </ControlTemplate>    </Setter.Value>   </Setter>  </Style>

引用示例:

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

顯示效果:

所有代碼已經上傳到github:https://github.com/cmfGit/WpfDemo.git

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對武林網的支持。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 廊坊市| 香河县| 尼木县| 松江区| 老河口市| 阳江市| 东丽区| 灵川县| 吴忠市| 酒泉市| 清涧县| 永德县| 社会| 金秀| 甘孜县| 崇明县| 松潘县| 迭部县| 北安市| 荆门市| 昭苏县| 安达市| 宁武县| 祁门县| 始兴县| 象州县| 太康县| 永定县| 乐昌市| 马鞍山市| 宿松县| 温泉县| 临沧市| 姜堰市| 都安| 三河市| 如东县| 湘阴县| 苍梧县| 嘉禾县| 邳州市|