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——当前值. 关键是它的控 ...
随机推荐
- Notepad++配置c++编译环境
博主学生狗一只,之前一直进行.net开发,用惯了微软的那一套.C#上手容易,开发起来简单,但是正如前辈们所说的,它隐藏了太多底层的东西,惯坏了我,导致快毕业了有些东西一无所知.同时自己想写点简单的算法 ...
- C#中的Attribute详解(下)
原文地址:https://blog.csdn.net/xiaouncle/article/details/70229119 C#中的Attribute详解(下) 一.Attribute本质 从上篇里我 ...
- 网页向flash传参数。显示视频。(例子)
[例子1]网页向flash传参数,显示视频: 下面要做的事情:做一个flash文件,可以通过网页得到参数(视频文件名).然后显示视频,并在文本框中显示视频文件名的文字. 1.建立一个flash文件:3 ...
- spring security 学习文档
web service Prepared by: Sea ...
- 5.Struts2配置形式,覆盖
转自:https://wenku.baidu.com/view/84fa86ae360cba1aa911da02.html 下面以对struts.i18n.encoding=UTF-8的配置为例进行说 ...
- 基于OpenGL编写一个简易的2D渲染框架-05 渲染文本
阅读文章前需要了解的知识:文本渲染 https://learnopengl-cn.github.io/06%20In%20Practice/02%20Text%20Rendering/ 简要步骤: 获 ...
- Java Socket通信实例
一.简单的客户端与服务器一对一连接: Socket通信的步骤: 1.创建ServerSocket和Socket 2.打开连接到Scket的输入/输出流 3.按照协议对Socket进行读/写操作 4.关 ...
- WP8.1 在默认浏览器中打开url
Windows.System.Launcher.LaunchUriAsync(new Uri("http://www.google.com")); PS: This is for ...
- css兼容性记录
* , ie6,ie7可以识别: _和- , ie6可以识别: !important ,表示高优先级,ie7及以上,firefox都支持,ie6认识带!important的样式属性, ...
- linux——DNS服务器配置
讲课,请不要在课堂上查找文件,浏览器搜索,会感觉你很不上心,玩听众,一定提前做很多遍,模拟很多遍: 演讲,请务必准备好材料,考虑听众的感受,一定不要让外行人云里雾里,听不懂你在讲什么,那就尴尬了, D ...