WPF ProgressBar实现实时进度效果

本文实例为大家分享了WPF ProgressBar实现实时进度的具体代码,供大家参考,具体内容如下

简单测试,页面如图:

利用上班的一点点空闲时间,做了个wpf progressbar的例子,觉得有潜力可挖,故放上来供大家参考,有写的更好的请留言哦,方便交流学习,谢谢

这个xaml:

<Page x:Class="WpfBrowserAppDrill.ProgressBarPage"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  mc:Ignorable="d"
Title="ProgressBarPage" Loaded="Page_Loaded">

 <Grid>
  <Button Margin="10" Click="Button_Click" VerticalAlignment="Top" Height="23" Width="100">进度条控制</Button>
  <TextBlock Name="txtJD" VerticalAlignment="Top" HorizontalAlignment="Center" Margin="50">当前进度:</TextBlock>
  <ProgressBar Height="20" HorizontalAlignment="Center" Margin="8,167,0,0"
Name="pb_import" VerticalAlignment="Top" Width="500" />
 </Grid>
</Page>

后台代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Threading;

namespace WpfBrowserAppDrill
{
 /// <summary>
 /// ProgressBarPage.xaml 的交互逻辑
 /// </summary>
 public partial class ProgressBarPage : Page
 {

  public ProgressBarPage()
  {
   InitializeComponent();
  } 

  private void beginImport()
  {
   double value = 0;
   double total = 100d;//得到循环次数
   while (value < total)
   {
    double jd = Math.Round(((value + 1) * (pb_import.Maximum / total)), 4);

    pb_import.Dispatcher.Invoke(new Action<System.Windows.DependencyProperty, object>(pb_import.SetValue),
     System.Windows.Threading.DispatcherPriority.Background,
     ProgressBar.ValueProperty,
     jd);
    //这里是加数据或费时的操作,我这里让它挂起300毫秒
    Thread.Sleep(300);
    txtJD.Text = "当前的进度是:" + (value + 1) + "(实际值)" + jd + "(百分比)";
    value++;
   }
  }
  private void Button_Click(object sender, RoutedEventArgs e)
  {
   beginImport();
   ////new Thread(new ThreadStart(beginImport)).Start();

  }

  private void Page_Loaded(object sender, RoutedEventArgs e)
  {
   pb_import.Maximum = 100;
   pb_import.Value = 0; 

  } 

 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • WPF拖动DataGrid滚动条时内容混乱的解决方法

    在WPF中,如果DataGrid里使用了模板列,当拖动滚动条时,往往会出现列表内容显示混乱的情况.解决方法就是在Binding的时候给UpdateSourceTrigger赋值. <Grid> <Grid.RowDefinitions> <RowDefinition Height="25"></RowDefinition> <RowDefinition></RowDefinition> </Grid.RowD

  • WPF如何自定义ProgressBar滚动条样式

    一.前言 滚动条一般用于加载进度,我们在看视频的时候或者在浏览网页的时候经常能看到加载进度的页面.在程序开发中,默认的进度加载样式可能跟程序风格不太一样,或者加载进度的时候需要更改一下加载的样式.这个时候就需要通过修改ProgressBar的样式来实现. 二.ProgressBar的基本样式 ProgressBar的基本样式很简单: <Style TargetType="{x:Type ProgressBar}"> <Setter Property="Foc

  • WPF ProgressBar实现实时进度效果

    本文实例为大家分享了WPF ProgressBar实现实时进度的具体代码,供大家参考,具体内容如下 简单测试,页面如图: 利用上班的一点点空闲时间,做了个wpf progressbar的例子,觉得有潜力可挖,故放上来供大家参考,有写的更好的请留言哦,方便交流学习,谢谢 这个xaml: <Page x:Class="WpfBrowserAppDrill.ProgressBarPage" xmlns="http://schemas.microsoft.com/winfx/2

  • WPF实现进度条实时更新效果

    本文实例为大家分享了WPF实现一个实时更新的进度条,供大家参考,具体内容如下 效果图 xaml代码 <Window x:Class="ProgressBar.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d=&q

  • Android中实现ProgressBar菊花旋转进度条的动画效果

    在一些常见到的加载中需要显示一个加载动画,如旋转的菊花,旋转的圈圈等等动画-,然后我们现在就来说下怎么去试下它吧 一.菊花的旋转动画 1.新建一个drawable文件 在res/drawable下新建一个progressbar_style.xml文件定义一个旋转动画 <animated-rotate xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable

  • Android开发之ProgressBar字体随着进度条的加载而滚动

    在网上翻阅了很多关于ProgressBar滚动效果,但是始终没有找到适合项目中的这种效果,故自己写这篇文章,记录一下写作过程,给大家做一个参考.先看下最终效果效果图 我这里用的是LICEcap软件录制的gif图,效果有点掉帧,哪位仁兄有比较好的录制gif的软件烦请相告,小弟在此先行谢过. 首先看下xml代码,只有两个系统控件,一个TextView和一个ProgressBar,Button只是为了方便触发进度条的效果,实际项目中可以根据需求来做.首先看下xml中的代码: <?xml version

  • ASP.NET技巧:教你制做Web实时进度条

    网上已经有很多Web进度条的例子,但是很多都是估算时间,不能正真反应任务的真实进度.我自己结合多线程和ShowModalDialog制做了一个实时进度条,原理很简单:使用线程开始长时间的任务,定义一个Session,当任务进行到不同的阶段改变Session的值,线程开始的同时使用ShowModalDialog打开一个进度条窗口,不断刷新这个窗口获取Session值,反应出实时的进度.下面就来看看具体的代码:(文章结尾处下载源代码) 先新建一个Default.aspx页面,客户端代码: <body

  • Android三种方式实现ProgressBar自定义圆形进度条

    进度条样式在项目中经常可以见到,下面小编给大家分享Android三种方式实现ProgressBar自定义圆形进度条. Android进度条有4种风格可以使用. 默认值是progressBarStyle. 设置成progressBarStyleSmall后,图标变小. 设置成progressBarStyleLarge后,图标变大 设置成progressBarStyleHorizontal后,变成横向长方形. 自定义圆形进度条ProgressBar的一般有三种方式: 一.通过动画实现 定义res/a

  • Android自定义带动画的半圆环型进度效果

    本文实例为大家分享了Android半圆环型进度效果的具体代码,供大家参考,具体内容如下 package com.newair.ondrawtext; import android.animation.ValueAnimator; import android.annotation.TargetApi; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Can

  • Android编程使用自定义View实现水波进度效果示例

    本文实例讲述了Android编程使用自定义View实现水波进度效果.分享给大家供大家参考,具体如下: 首先上效果图: 简介: 1.自动适应屏幕大小: 2.水波自动横向滚动: 3.各种绘制参数可通过修改常量进行控制. 代码不多,注释也比较详细,全部贴上: (一)自定义组件: /** * 水波进度效果. */ public class WaterWaveView extends View { //边框宽度 private int STROKE_WIDTH; //组件的宽,高 private int

  • Nginx-rtmp实现直播媒体实时流效果

    0. 前言 这段时间在搭建一个IPCamera项目服务器.视频点对点通话,客户端会查看设备端的音视频实时流.为了省流量,是通过P2P进行穿透.但是由于NAT设备的原因和IPV4的枯竭.有些设备是无法进行点对点传输实时流.所以需要进行服务器转发.这里为了快速实现原型,同时参考现在主流的流媒体协议.发现很多使用的是RTMP协议. 下图是总体设计图,为了整合多平台,会自建RTMP流媒体服务器和使用云厂商SaaS的RTMP流媒体服务.但是由于有时候会传输一些非流媒体数据,需要传输一些二进制文件,所以会需

  • Android 自定义球型水波纹带圆弧进度效果(实例代码)

    需求 如下,实现一个圆形水波纹,带进度,两层水波纹需要渐变显示,且外围有一个圆弧进度. 思路 外围圆弧进度:可以通过canvas.drawArc()实现.由于圆弧需要实现渐变,可以通过给画笔设置shader(SweepGradient)渲染,为了保证圆弧起始的颜色值始终一致,需要动态调整shader的参数.具体参见 SweepGradient(centerX.toFloat(), centerY.toFloat(), circleColors[0], floatArrayOf(0f, value

随机推荐