WPF中怎么自定義ProgressBar滾動(dòng)條樣式

本篇文章為大家展示了WPF中怎么自定義ProgressBar滾動(dòng)條樣式,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

成都創(chuàng)新互聯(lián)公司致力于互聯(lián)網(wǎng)品牌建設(shè)與網(wǎng)絡(luò)營銷,包括網(wǎng)站制作、成都網(wǎng)站建設(shè)、SEO優(yōu)化、網(wǎng)絡(luò)推廣、整站優(yōu)化營銷策劃推廣、電子商務(wù)、移動(dòng)互聯(lián)網(wǎng)營銷等。成都創(chuàng)新互聯(lián)公司為不同類型的客戶提供良好的互聯(lián)網(wǎng)應(yīng)用定制及解決方案,成都創(chuàng)新互聯(lián)公司核心團(tuán)隊(duì)10多年專注互聯(lián)網(wǎng)開發(fā),積累了豐富的網(wǎng)站經(jīng)驗(yàn),為廣大企業(yè)客戶提供一站式企業(yè)網(wǎng)站建設(shè)服務(wù),在網(wǎng)站建設(shè)行業(yè)內(nèi)樹立了良好口碑。

一、前言

滾動(dòng)條一般用于加載進(jìn)度,我們在看視頻的時(shí)候或者在瀏覽網(wǎng)頁的時(shí)候經(jīng)常能看到加載進(jìn)度的頁面。在程序開發(fā)中,默認(rèn)的進(jìn)度加載樣式可能跟程序風(fēng)格不太一樣,或者加載進(jìn)度的時(shí)候需要更改一下加載的樣式。這個(gè)時(shí)候就需要通過修改ProgressBar的樣式來實(shí)現(xiàn)。

二、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"/>

上述內(nèi)容就是WPF中怎么自定義ProgressBar滾動(dòng)條樣式,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

名稱欄目:WPF中怎么自定義ProgressBar滾動(dòng)條樣式
文章源于:http://muchs.cn/article24/ihddje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動(dòng)態(tài)網(wǎng)站、網(wǎng)站設(shè)計(jì)公司軟件開發(fā)、網(wǎng)站改版、營銷型網(wǎng)站建設(shè)網(wǎng)站維護(hù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)