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 += "\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 进度条 下拉的更多相关文章
- 织梦DedeCMS v5.7 实现导航条下拉菜单
首先将下面这段代码贴到templets\default\footer.htm文件里(只要在此文件里就行,位置无所谓) <</span>script type='text/javasc ...
- WPF 进度条ProgressBar
今天研究了一下wpf的进度条ProgressBar 1.传统ProgressBar WPF进度条ProgressBar 这个控件,如果直接写到循环里,会死掉,界面会卡死,不会有进度.需要把进度条放到单 ...
- WPF进度条系列②旋转小圆圈
写在之前: 关于WPF的样式,我也是学习了很多朋友的文章才有了下面的东西,因为时间有些久远 & 备份的链接也都不在了. 所以,究竟是看过哪些文章,也是记不清楚了…… 请见谅. ------- ...
- WPF AutoGeneratingColumn 绑定下拉框
WPF自动产生列,前台代码: <DataGrid x:Name="Dg" AutoGenerateColumns="True" CanUserAddRow ...
- C# WPF 进度条,根据读取数据显示进度条进度,根据Excel文件读取数据,进度条样式
后台代码: //导入 private void Border_MouseLeftButtonUp_2(object sender, MouseButtonEventArgs e) { var path ...
- WPF进度条
ProgressBar控件与传统WinForm使用方法完全一样,我们只需关注: Minimum——最小值,默认为0: Maximum——最大值,默认为100. Value——当前值. 关键是它的控 ...
- DEDECMS v5.7 完美实现导航条下拉二级菜单
一.引言 好多人都问,织梦的下拉导航怎么做呢?其实很简单!即使你对代码一点也不熟悉,没关系! 按照我的步骤走!记住一步也不能错哦! 二.实现过程 1.首先: 将下面这段代码贴到templets\def ...
- c# wpf ComboBox 动态下拉框 及 动态默认值设定
1.下拉框声明 <ComboBox x:Name="DirComboBox" Width="150" Height="18" Marg ...
- 继续聊WPF——进度条
ProgressBar控件与传统WinForm使用方法完全一样,我们只需关注: Minimum——最小值,默认为0: Maximum——最大值,默认为100. Value——当前值. 关键是它的控 ...
随机推荐
- OpenACC parallel
▶ 使用 kernels 导语并行化 for 循环 ● 同一段代码,使用 kernels,parallel 和 parallel + loop 进行对比 #include <stdio.h> ...
- 62. 用流程自带的打印功能,IE浏览器打印出来是空白
用流程自带的打印功能,IE浏览器打印出来是空白的这个问题确认是由于IE启用了兼容模式导致的了把IE的兼容模式关掉就行了
- git提交到远程仓库
Git概述 什么是Git? 刚开始对这个东西也感到挺迷茫,并且问了好多已经学习android一段时间的同学也是一头雾水,直到了解并使用之后,才体会到Git的好处以及重要意义. Git:是目前世界上最先 ...
- [转]使用RTT(Real-Time Terminal)
转自http://siever.info/home/hello-world/ Bluetooth Low Energy Logging events with on Nordic’s nRF seri ...
- dir 使用,统计文件数量
dir /b /a-d | find /v /c "$$$$" >1.log--※ 来源:·水木社区 newsmth.net·[FROM: 125.46.17.*] 今天去水 ...
- python 3 属性查找与绑定方法
1.属性查找 类有两种属性:数据属性和函数属性 (1)类的数据属性是所有对象共享的 #类的数据属性是所有对象共享的,id都一样 class OldboyStudent: school='oldboy' ...
- something about facebook token
There are two method origin token , you can use any one of them, first one may be easier. Origin fro ...
- k-means处理图片
问题描述:把给定图片,用图片中最主要的三种颜色来表示该图片 k-means思想: 1.选择k个点作为初始中心 2.将每个点指派到最近的中心,形成k个簇cluster 3.重新计算每个簇的中心 4.如果 ...
- chm 文件生成器
1.看云:官网 https://www.kancloud.cn/price 价格如下:
- SearchEngine Note
[SearchEngine Note] 1.查全率. 2.查准率. 3.查全率与查准率的关系. 4.四大系统. 5.权威性网页反向链接多.网页的平均出席为25.7,即平均每一个网页含有25.7个指向其 ...