zoukankan      html  css  js  c++  java
  • wpf 进度条 下拉

    <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 += " Completed";
                }
                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 += " "+list[cc+j].Mid + ":" + list[cc+j].MName + ":" + list[cc+j].MIsDel + list[cc+j].MAddtime+" ";
                        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)
            {

            }

          
        }
    }

  • 相关阅读:
    STL源码剖析之_allocate函数
    PAT 1018. Public Bike Management
    PAT 1016. Phone Bills
    PAT 1012. The Best Rank
    PAT 1014. Waiting in Line
    PAT 1026. Table Tennis
    PAT 1017. Queueing at Bank
    STL源码剖析之list的sort函数实现
    吃到鸡蛋好吃,看看是哪只母鸡下的蛋:好用的Sqlite3
    cJSON
  • 原文地址:https://www.cnblogs.com/kexb/p/3699267.html
Copyright © 2011-2022 走看看