WPF中自定义漂亮的进度条

wpf中自带的进度条是这个样子德。

在2003中这个进度条的样子就会变得非常难看。

在wpf中您可以自己制作任意样式的进度条。如下图:

UserControl.xaml

用户控件

<Grid x:Name="LayoutRoot" Background="Transparent"
               HorizontalAlignment="Center" VerticalAlignment="Center">
         <Grid.RenderTransform>
             <ScaleTransform x:Name="SpinnerScale"
                                 ScaleX="1.0" ScaleY="1.0" />
         </Grid.RenderTransform>
         <Canvas RenderTransformOrigin="0.5,0.5"
                     HorizontalAlignment="Center"
                     VerticalAlignment="Center"
                     Width="120" Height="120" >
             <Ellipse Width="21.835" Height="21.862"
                          Canvas.Left="20.1696"
                          Canvas.Top="9.76358"
                          Stretch="Fill" Fill="Orange"
                          Opacity="1.0"/>
             <Ellipse Width="21.835" Height="21.862"
                          Canvas.Left="2.86816"
                          Canvas.Top="29.9581" Stretch="Fill"
                          Fill="Black" Opacity="0.9"/>
             <Ellipse Width="21.835" Height="21.862"
                          Canvas.Left="5.03758e-006"
                          Canvas.Top="57.9341" Stretch="Fill"
                          Fill="Black" Opacity="0.8"/>
             <Ellipse Width="21.835" Height="21.862"
                          Canvas.Left="12.1203"
                          Canvas.Top="83.3163" Stretch="Fill"
                          Fill="Black" Opacity="0.7"/>
             <Ellipse Width="21.835" Height="21.862"
                          Canvas.Left="36.5459"
                          Canvas.Top="98.138" Stretch="Fill"
                          Fill="Black" Opacity="0.6"/>
             <Ellipse Width="21.835" Height="21.862"
                          Canvas.Left="64.6723"
                          Canvas.Top="96.8411" Stretch="Fill"
                          Fill="Black" Opacity="0.5"/>
             <Ellipse Width="21.835" Height="21.862"
                          Canvas.Left="87.6176"
                          Canvas.Top="81.2783" Stretch="Fill"
                          Fill="Black" Opacity="0.4"/>
             <Ellipse Width="21.835" Height="21.862"
                          Canvas.Left="98.165"
                          Canvas.Top="54.414" Stretch="Fill"
                          Fill="Black" Opacity="0.3"/>
             <Ellipse Width="21.835" Height="21.862"
                          Canvas.Left="92.9838"
                          Canvas.Top="26.9938" Stretch="Fill"
                          Fill="Black" Opacity="0.2"/>
             <Ellipse Width="21.835" Height="21.862"
                          Canvas.Left="47.2783"
                          Canvas.Top="0.5" Stretch="Fill"
                          Fill="Black" Opacity="0.1"/>
             <Canvas.RenderTransform>
                 <RotateTransform x:Name="SpinnerRotate"
                                      Angle="0" />
             </Canvas.RenderTransform>
             <Canvas.Triggers>
                 <EventTrigger RoutedEvent="ContentControl.Loaded">
                     <BeginStoryboard>
                         <Storyboard>
                             <DoubleAnimation
                                     Storyboard.TargetName
                                         ="SpinnerRotate"
                                      Storyboard.TargetProperty
                                         ="(RotateTransform.Angle)"
                                      From="0" To="360"
                                      Duration="0:0:01"
                                      RepeatBehavior="Forever" />
                         </Storyboard>
                     </BeginStoryboard>
                 </EventTrigger>
             </Canvas.Triggers>
         </Canvas>
     </Grid>

UserControl.xaml.cs

后台代码

public UserControl1()
         {
             InitializeComponent();
             Timeline.DesiredFrameRateProperty.OverrideMetadata(
                        typeof(Timeline),
                            new FrameworkPropertyMetadata { DefaultValue = 20 });
         }

程序中添加对此用户控件的命名空间

<Grid>
         <local:UserControl1></local:UserControl1>
     </Grid>

时间: 2025-01-26 20:35:49

WPF中自定义漂亮的进度条的相关文章

js插件YprogressBar实现漂亮的进度条效果

  以下为你介绍js插件YprogressBar实现漂亮的进度条效果:       ProgressBar.js 是一个借助动态 SVG 路径的漂亮的,响应式的进度条效果.使用 ProgressBar.js 可以很容易地创建任意形状的进度条.这个 JavaScript 库提供线条,圆形和方形等几个内置的形状,但你可使用 Illustrator 或任何其它的矢量图形编辑器创建自己的进度条效果. 简介 YprogressBar是一款基于HTML5的进度条插件. YprogressBar是一款轻量级进

在PPT2007中怎么插入带进度条的视频?

  近日,许多小童鞋说PPT中插入的视频没有进度条,不方便,喜欢的朋友快快来学习吧! 方法/步骤 1.首先,打开PowerPoint 2.点击右上角的Office图标,在最下方点击"PowerPoint选项" 3.在"PowerPoint选项"中勾选"在功能区显示'开发工具'选项卡". 4.然后,在工具栏(有"开始"字样一栏)中选择"开发工具",并点击图中所指的五金工具样的图标 5.在新开页面中选择&quo

Android零基础入门第52节:自定义酷炫进度条

原文:Android零基础入门第52节:自定义酷炫进度条    Android系统默认的ProgressBar往往都不能满足实际开发需要,一般都会开发者自定义ProgressBar.     在Android开发中,自定义ProgressBar一般有三种思路来完成.     一.在系统进度条基础上优化       首先来看一下style="@android:style/Widget.ProgressBar.Horizontal"的源码.鼠标移动到style属性值上,按住Ctrl键,鼠标

WPF利用动画实现圆形进度条

原文:WPF利用动画实现圆形进度条 这是我的第一篇随笔,最近因为工作需要,开始学习WPF相关技术,自己想实现以下圆形进度条的效果,逛了园子发现基本都是很久以前的文章,实现方式一般都是GDI实现的,想到WPF中动画效果不错,于是自己研究了一下,还真让我做出来了,废话不多说了,先上效果. 这个效果是不是还不错?这里面实现了数字实时显示以及根据进度进行自动渐变的效果.实现原理其实很简单,利用WPF动画,其中主要元素有border(实现里外层圆的效果),Arc扇面(就是用来实现外层填充效果的),Labe

自定义Android六边形进度条(附源码)_Android

本文实例讲述了Android自定义圆形进度条,分享给大家供大家参考.具体如下: 大家也可以参考这两篇文章进行学习: <自定义Android圆形进度条(附源码)>   <Android带进度的圆形进度条> 运行效果截图如下: 主要代码: package com.sxc.hexagonprogress; import java.util.Random; import android.content.Context; import android.content.res.ColorSta

在WPF中自定义你的绘制(四)

原文:在WPF中自定义你的绘制(四)                                   在WPF中自定义你的绘制(四)                                                              周银辉 1,利用路径绘制图形(PathGeometry)有时我们需要绘制的图形可能很复杂而显得不是那么的规则,这时我们就需要将图形分解成若干小的部分(分解成线段.圆弧.贝塞尔曲线等等),然后将这些小部分使用PathGeometry组合在一起

自定义Android六边形进度条(附源码)

本文实例讲述了Android自定义圆形进度条,分享给大家供大家参考.具体如下: 大家也可以参考这两篇文章进行学习: <自定义Android圆形进度条(附源码)>   <Android带进度的圆形进度条> 运行效果截图如下: 主要代码: package com.sxc.hexagonprogress; import java.util.Random; import android.content.Context; import android.content.res.ColorSta

Android自定义多节点进度条显示的实现代码(附源码)

亲们里面的线段颜色和节点图标都是可以自定义的. 在没给大家分享实例代码之前,先给大家展示下效果图: main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/rl_parent" xmlns:tools="http://schemas.android.com/tools" android:layou

Android 自定义view实现进度条加载效果实例代码

这个其实很简单,思路是这样的,就是拿view的宽度,除以点的点的宽度+二个点 之间的间距,就可以算出大概能画出几个点出来,然后就通过canvas画出点,再然后就是每隔多少时间把上面移动的点不断的去改变它的坐标就可以, 效果如下: 分析图: 代码如下: package com.example.dotloadview; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Bit