一 进度条的 隐藏 ,在WPF 里面
ProgressBar progressBar1=new ProgressBar();
progressBar1.Visibility= Visibility.Hidden; //隐藏
progressBar1.Visibility= Visibility.Hidden; //隐藏
progressBar1.Visibility= Visibility.Visible; //显示
二 进度条的 基本用法,在WPF 里面
progressBar1.Visibility= Visibility.Hidden; //隐藏
progressBar1.Maximum = 100; //最大值
progressBar1.Value = 3; //设置值
三 特别的用法,在一个线程里面 设置 不是本线程的 对象。
例如在一个线程里面控制进度条的 值
wpf中提供了全新的Dispatcher类。可以使用this.Dispatcher.BeginInvoke()或者控件.Dispatcher.BeginInvoke()这个方式和winform2.0是比较类似的。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
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.Threading;
namespace WpfMyThree
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
/// <summary>
/// 窗口关闭时结束线程
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Window_Closed(object sender, EventArgs e)
{
Console.Write("结束");// mThread.Abort();
}
/// <summary>
/// 设置 进度条的代理函数
/// </summary>
/// <param name="text">string</param>
private delegate void SetprogressBarHandle(int vaule); //定义 代理函数
private void SetprogressBar(int vaule)
{
if (this.Dispatcher.Thread != System.Threading.Thread.CurrentThread)
{
this.Dispatcher.Invoke(new SetprogressBarHandle(this.SetprogressBar), vaule);
}
else
{
progressBar1.Value = vaule;
}
}
/// <summary>
/// 按键 处理 函数 建立线程
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void buttonText_Click(object sender, RoutedEventArgs e)
{
Thread mThread = new Thread(ThreadProcess);
progressBar1.Maximum = 100;
progressBar1.Value = 0;
mThread.Name = "线程测试";
mThread.Start();
}
/// <summary>
/// 线程处理 函数 主要调用 SetprogressBar(int vaule) 来设置进度条的值
/// </summary>
/// <param name="obj"></param>
private void ThreadProcess(object obj)
{
int i = 0;
while (true)
{
Console.WriteLine("线程一");
i++;
SetprogressBar( i);
Thread.Sleep(1000);
}
}
}
}
///end of file //