Windows Phone 7開發,進度條ProgressBar使用詳解

來源:互聯網
上載者:User
進度條在應用中的作用非常大,可以告訴使用者當前操作執行的進度,以免使用者在等待中失去耐心,進而關閉應 用.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);
            }
 
        }
    }
}
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.