博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Windows Phone 7开发,进度条ProgressBar使用详解
阅读量:5032 次
发布时间:2019-06-12

本文共 2334 字,大约阅读时间需要 7 分钟。

进度条在应用中的作用非常大,可以告诉用户当前操作执行的进度,以免用户在等待中失去耐心,进而关闭应 用.Windows Phone 7的进度条有两种样式,一种是从左往右循环滚动的小点点,这种进度条并不能显示当前进度,类似于Android进度条的转圈风格;另一种就是能显示进度的 普通进度条,两种样式效果如下图: 介绍一下这个实例,页面上三

  

  进度条在应用中的作用非常大,可以告诉用户当前操作执行的进度,以免用户在等待中失去耐心,进而关闭应用.Windows Phone 7的进度条有两种样式,一种是从左往右循环滚动的小点点,这种进度条并不能显示当前进度,类似于Android进度条的转圈风格;另一种就是能显示进度的 普通进度条,两种样式效果如下图:

  

 

  介绍一下这个实例,页面上三个控件,两个ProgressBar分别显示两种风格的进度条,一个按钮,用于开启新线程更新ProgressBar的进度,这里用于了委托,如有不明白,参考:

  几个控件的XAML代码:

        <
Grid x:Name=
"ContentPanel"
 Grid.Row=
"1"
 Margin=
"12,0,12,0"
 Background=
"{x:Null}">
            <
ProgressBar Height=
"54"
 HorizontalAlignment=
"Left"
 
Margin=
"17,27,0,0"
 Name=
"progressBar1"
 VerticalAlignment=
"Top"
 
Width=
"390"
 IsIndeterminate=
"True"
 />
            
<!--IsIndeterminate是关键,这个属性确定了ProgressBar的样式,默认是false,就是普通的能显示进度的进度条,true就是不能显示进度的进度条-->
            <
ProgressBar Height=
"59"
 HorizontalAlignment=
"Left"
 
Margin=
"31,107,0,0"
 Name=
"progressBar2"
 VerticalAlignment=
"Top"
 Width=
"374"
  />
            <
Button Content=
"更新progressBar2"
 Height=
"82"
 
HorizontalAlignment=
"Left"
 Margin=
"63,199,0,0"
 Name=
"button1"
 
VerticalAlignment=
"Top"
 Width=
"260"
 Click=
"button1_Click"
 />
        <
/Grid>

  C#程序代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;
using System.Threading;
 
namespace PhoneApp3
{
    
public partial 
class MainPage : PhoneApplicationPage
    {
        
delegate 
void ProgressDelegate(
int i);
        
//声明委托类型
        
//委托的内容如有不明白,见http://www.pocketdigi.com/20110916/476.html 有详细注解
        ProgressDelegate progressDelegate;
        
//声明委托
        
public MainPage()
        {
            InitializeComponent();
        }
 
        
private 
void button1_Click(
object sender, RoutedEventArgs e)
        {
            progressDelegate = SetProgress;
            
//把更新进度方法添加进委托
            
new Thread(
new ThreadStart(ThreadProc)).Start();
            
//开启新线程
 
        }
        
private 
void SetProgress(
int i)
        {
            
//这是更新进度条的方法
            progressBar2.Value = i;
            
if (i == 100)
            {
                
//如果达到100,则隐藏进度条
                progressBar2.Visibility = Visibility.Collapsed;
                
//显示方法Visibility.Visibl
            }
        }
        
private 
void ThreadProc()
        {
//新线程执行的方法
            
for (
int i = 0; i <= 100; i++)
            {
                
this.Dispatcher.BeginInvoke(progressDelegate,i);
                
//线程中调用委托来更新UI,参数是委托,以及委托的参数
                Thread.Sleep(1000);
            }
 
        }
    }
}

转载于:https://www.cnblogs.com/songtzu/archive/2012/04/10/2439959.html

你可能感兴趣的文章
MainFrame知识小结(20120210)—dfsort/syncsort中的数据类型
查看>>
jsp题库 (一)小测(25/21)
查看>>
D - Flip tile
查看>>
Java连接RabbitMQ之创建连接
查看>>
开户vim编程之--cscope支持
查看>>
python数据类型图解
查看>>
js获取标准北京时间
查看>>
DZ!NT论坛 3.6.711删除用户各种错解决方案
查看>>
C#微信登录-手机网站APP应用
查看>>
HTML5实践 -- iPhone Safari Viewport Scaling Bug
查看>>
一位数据挖掘成功人士 给 数据挖掘在读研究生 的建议
查看>>
Python3.6.0安装
查看>>
hdu1049
查看>>
H5项目常见问题及注意事项
查看>>
索尼(SONY) SVE1512S7C 把WIN8降成WIN7图文教程
查看>>
时间模块 && time datetime
查看>>
jquery自动生成二维码
查看>>
spring回滚数据
查看>>
新浪分享API应用的开发
查看>>
美国专利
查看>>