<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="322" Width="525">
    <Grid Height="218" Margin="0,3" HorizontalAlignment="Left" Width="517">
        <Grid.RowDefinitions>
            <RowDefinition Height="105*"/>
            <RowDefinition Height="113*"/>
        </Grid.RowDefinitions>
        <Rectangle Height="28" HorizontalAlignment="Left" Margin="64,24,0,0" Name="rectangle1" Stroke="Black" VerticalAlignment="Top" Width="0" />
        <Label Content="进度:" Height="28" HorizontalAlignment="Left" Margin="12,26,0,0" Name="label1" VerticalAlignment="Top" />
        <Button Content="开 始" Height="23" HorizontalAlignment="Left" Margin="206,123,0,-33" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" Grid.Row="1" />
        <Label Content="0%" Margin="71,24,0,53" Name="label2" HorizontalAlignment="Left" Width="46" />
        <TextBox TextWrapping ="Wrap" HorizontalAlignment="Left" Margin="12,57,0,10" Name="textBox1" Width="421"  Grid.RowSpan="2" TextChanged="textBox1_TextChanged" />
    </Grid>
</Window>

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
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.Windows.Threading;
using System.Data;
using System.Data.SqlClient;

namespace WpfApplication1
{
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    //public partial class MainWindow : Window
    //{
    //    public MainWindow()
    //    {
    //        InitializeComponent();
    //    }

//    private void button1_Click(object sender, RoutedEventArgs e)
    //    {

//    }

//    private void textBox1_TextChanged(object sender, TextChangedEventArgs e)
    //    {

//    }
    //}
 
    public partial class MainWindow : Window
    {
      public  static double percent = 0;
      public static   int counts = 0;
      public static  int cc = 0;
      public static List<Menu> list = null;
      public static List<Menu> queryProgress()
      {
          SqlConnection conn = new SqlConnection();
          conn.ConnectionString = "Data Source=.;Initial Catalog=CompanyGZ;Integrated Security=True";
          SqlCommand cmd = new SqlCommand();
          string sql = "SELECT * FROM Menu;";
          cmd.Connection = conn;
          cmd.CommandText = sql;
          conn.Open();
          SqlDataAdapter adp = new SqlDataAdapter(cmd);
          DataSet ds = new DataSet();
          adp.Fill(ds);

DataTable dt = ds.Tables[0];
          list = new List<Menu>();
          list = DataTable2List(dt);
          counts = int.Parse(ds.Tables[0].Rows.Count.ToString());
          return list;

}

private static List<Menu> DataTable2List(DataTable dt)
      {
          if (dt.Rows.Count > 0)
          {
              List<Menu> list = new List<Menu>();
              Menu model = null;
              foreach (DataRow dr in dt.Rows)
              {
                  model = new Menu();
                  LoadEntityData(model, dr);
                  list.Add(model);
              }
              return list;
          }
          return null;
      }
      public static void LoadEntityData(Menu model, DataRow dr)
      {
          if (dr.Table.Columns.Contains("mId") && !dr.IsNull("mId"))
          {

model.Mid = int.Parse(dr["mId"].ToString());
          }
          model.MName = dr["mName"].ToString();
          model.MIsDel = Convert.ToBoolean(dr["mIsDel"]);
          model.MAddtime = Convert.ToDateTime(dr["mAddtime"]);
      }
        private delegate int BrushProcessHandle();
        public MainWindow()
        {
            InitializeComponent();
        }

Thickness tmpT;

private void button1_Click(object sender, RoutedEventArgs e)
        {
            queryProgress();
            this.rectangle1.Width = 0;
            i = 1;
            if (tmpT.Left == 0 && tmpT.Top == 0 && tmpT.Right == 0 && tmpT.Bottom == 0)
            {
                tmpT = this.label2.Margin;
            }
            else
            {
                this.label2.Margin = tmpT;
            }
            this.textBox1.Text = "do working...";
            // 注释此句将百分比将会一直在进度条头部显示
            this.label2.Margin = new Thickness(this.label2.Margin.Left - 52, this.label2.Margin.Top, this.label2.Margin.Right, this.label2.Margin.Bottom);
            // 取消注释字体颜色为白色
            //this.label2.Foreground = Brushes.White;
            // 取消注释字体为斜体
            //this.label2.FontStyle = FontStyles.Italic;
            BrushProcessBar();
           
        }

private DispatcherTimer dt;
        private int i = 1;
        private void BrushProcessBar()
        {
            dt = new DispatcherTimer();
            dt.Interval = new TimeSpan(10000);
            dt.Tick += new EventHandler(dt_Tick);
            dt.Start();
        }

protected void dt_Tick(object sender, EventArgs e)
        {
            // 纯色进度条
            //SolidColorBrush scb = new SolidColorBrush();
            //scb.Color = Color.FromRgb(63, 134, 231);

// 渐变进度条

LinearGradientBrush scb = new LinearGradientBrush(Color.FromRgb(63, 169, 233), Color.FromRgb(16, 111, 197), 0);
            this.rectangle1.Width = i++;
            this.label2.Margin = new Thickness(this.label2.Margin.Left + 1, this.label2.Margin.Top, this.label2.Margin.Right, this.label2.Margin.Bottom);
            this.rectangle1.Fill = scb;
            //if (i == 50 || i == 120 || i == 410)
            //{
            //    Thread.Sleep(200);
            //}
            //this.label2.Content = Decimal.Round(((decimal)i) / 400 * 100, 2) + "%";//i == 400

if (percent == 100)
            {
                dt.Stop();
              //  this.label2.Visibility =Visibility.Hidden;
                this.textBox1.Text += "\r\nCompleted";
            }
            else
            {

if (cc <= counts)
                {
                   cc=cc+1;
                }
                textBox1.Text = "do working...";
                for (int j = 0; j < 6; j++)
                {
                    if (cc + j >= counts)
                    {
                      
                        percent = 100;
                        this.label2.Content = ("" + Convert.ToInt16(percent) + "%");
                        return ;
                    // Decimal.Round(((cc)) / counts * 100, 2) + "%";//i == 400
                    }
                    textBox1.Text += "\n"+list[cc+j].Mid + ":" + list[cc+j].MName + ":" + list[cc+j].MIsDel + list[cc+j].MAddtime+"\n";
                    percent =Convert.ToDouble( cc )/ counts*100;
                    this.label2.Content =(""+Convert.ToInt16( percent)+ "%");//i == 400
                  
                }
           //this.textBox1.Text+=  
                if (percent == 100) return;
            }
     
        }

private void Window_Loaded(object sender, RoutedEventArgs e)
        {

}

private void textBox1_TextChanged(object sender, TextChangedEventArgs e)
        {

}

}
}

wpf 进度条 下拉的更多相关文章

  1. 织梦DedeCMS v5.7 实现导航条下拉菜单

    首先将下面这段代码贴到templets\default\footer.htm文件里(只要在此文件里就行,位置无所谓) <</span>script type='text/javasc ...

  2. WPF 进度条ProgressBar

    今天研究了一下wpf的进度条ProgressBar 1.传统ProgressBar WPF进度条ProgressBar 这个控件,如果直接写到循环里,会死掉,界面会卡死,不会有进度.需要把进度条放到单 ...

  3. WPF进度条系列②旋转小圆圈

     写在之前: 关于WPF的样式,我也是学习了很多朋友的文章才有了下面的东西,因为时间有些久远 & 备份的链接也都不在了. 所以,究竟是看过哪些文章,也是记不清楚了…… 请见谅. ------- ...

  4. WPF AutoGeneratingColumn 绑定下拉框

    WPF自动产生列,前台代码: <DataGrid x:Name="Dg" AutoGenerateColumns="True" CanUserAddRow ...

  5. C# WPF 进度条,根据读取数据显示进度条进度,根据Excel文件读取数据,进度条样式

    后台代码: //导入 private void Border_MouseLeftButtonUp_2(object sender, MouseButtonEventArgs e) { var path ...

  6. WPF进度条

    ProgressBar控件与传统WinForm使用方法完全一样,我们只需关注: Minimum——最小值,默认为0: Maximum——最大值,默认为100. Value——当前值.   关键是它的控 ...

  7. DEDECMS v5.7 完美实现导航条下拉二级菜单

    一.引言 好多人都问,织梦的下拉导航怎么做呢?其实很简单!即使你对代码一点也不熟悉,没关系! 按照我的步骤走!记住一步也不能错哦! 二.实现过程 1.首先: 将下面这段代码贴到templets\def ...

  8. c# wpf ComboBox 动态下拉框 及 动态默认值设定

    1.下拉框声明 <ComboBox x:Name="DirComboBox" Width="150" Height="18" Marg ...

  9. 继续聊WPF——进度条

    ProgressBar控件与传统WinForm使用方法完全一样,我们只需关注: Minimum——最小值,默认为0: Maximum——最大值,默认为100. Value——当前值.   关键是它的控 ...

随机推荐

  1. tomcat原理解析(一):一个简单的实现

    tomcat原理解析(一):一个简单的实现 https://blog.csdn.net/qiangcai/article/details/60583330 2017年03月07日 09:54:27 逆 ...

  2. Laravel 5.4: 特殊字段太长报错

    laravel 5.4 改变了默认的数据库字符集,现在utf8mb4包括存储emojis支持.如果你运行MySQL v5.7.7或者更高版本,则不需要做任何事情. 当你试着在一些MariaDB或者一些 ...

  3. JS - 函数,Math,number

    函数分为:关键字function 匿名函数 — 没有名字的函数 有名函数 — 有名字的函数 <body> <div></div> <script> // ...

  4. 0_Simple__simpleOccupancy

    计算核函数调用使得占用率,并尝试使用 runtime 函数自动优化线程块尺寸,以便提高占用率. ▶ 源代码. #include <iostream> #include "cuda ...

  5. zabbix_get无法执行agent端的脚本文件解决办法

    一,无法执行脚本参考网站:http://blog.51cto.com/13589448/2070180 权限不足时提示: server端提示: [root@yao local]# zabbix_get ...

  6. zabbix配合脚本监控Kafka

    简介: Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据.Kafka如下特性,受到诸多公司的青睐. 1.高吞吐量:即使是非常普通的硬件Kafka也可以支持 ...

  7. leetcode743

    class Solution { public: int networkDelayTime(vector<vector<int>>& times, int N, int ...

  8. PCI Simple Communications Controller

    PCI Simple Communications Controller Intel Management Engine Interface (MEI)

  9. J2SE 8的注解

    1. 注解概念 (1) 注解格式 modifiers @interface AnnotationName { type elementName(); type elementName() defaul ...

  10. Simple2D-24 Sprite 渲染树

    如果要开发游戏,单单使用 Painter 绘制图片会变得十分复杂.如果使用 Sprite 对象进行显示,可以简单地实现图片的位移.旋转和缩放,结合 Action 对象可以实现复杂的动画效果.最重要的是 ...