<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 进度条 下拉,码迷,mamicode.com