• WP8控件进度条(ProgressBar)的使用


    --前台代码 

    <Grid x:Name="ContentPanel"  Grid.Row="1" Margin="0,0,24,0">
                <ProgressBar x:Name="ProgressBar1" HorizontalAlignment="Left" Height="71" Margin="42,244,0,0" VerticalAlignment="Top" Width="308" Value="50"/>
                <TextBlock HorizontalAlignment="Left" Height="38" Margin="42,10,0,0" TextWrapping="Wrap" Text="请选择类型" VerticalAlignment="Top" Width="330"/>
                <RadioButton x:Name="rad1" Content="Determinate类型" HorizontalAlignment="Left" Margin="42,53,0,0" VerticalAlignment="Top" Width="330" IsChecked="True"/>
                <RadioButton x:Name="rad2" Content="Indeterminate类型" HorizontalAlignment="Left" Margin="42,146,0,0" VerticalAlignment="Top" Width="330"/>
                <Button x:Name="begin" Content="启动" HorizontalAlignment="Left" Margin="42,320,0,0" VerticalAlignment="Top" Width="295"/>
                <Button x:Name="canel" Content="取消" HorizontalAlignment="Left" Margin="42,392,0,0" VerticalAlignment="Top" Width="295"/>
            </Grid>

    --后台代码

    using Microsoft.Phone.Controls;
    using Microsoft.Phone.Shell;
    using PhoneFirst.Resources;
    using System.ComponentModel;
    
    namespace PhoneFirst
    {
        public partial class MainPage : PhoneApplicationPage
        {
            private BackgroundWorker backgroundworker;
            // 构造函数
            public MainPage()
            {
                
                InitializeComponent();
                ProgressBar1.Visibility = Visibility.Collapsed;
                begin.Click += begin_Click;
                canel.Click += canel_Click;
    
              
            }
    
            void canel_Click(object sender, RoutedEventArgs e)
            {
                ProgressBar1.Visibility = Visibility.Collapsed;
            }
    
            void begin_Click(object sender, RoutedEventArgs e)
            {
                ProgressBar1.Visibility = Visibility.Visible;
                if (rad1.IsChecked == true)
                {
                    ProgressBar1.IsIndeterminate = false;
                    backgroundworker = new BackgroundWorker();//创建一个后台处理类的对象
                    //调用RunWorkerAsync后台操作时引发此事件,即后台要处理的事情写在这个事件里面
                    backgroundworker.DoWork += backgroundworker_DoWork;
                    //当后台操作完成事件
                    backgroundworker.RunWorkerCompleted += backgroundworker_RunWorkerCompleted;
                    //当处理进度(ReportProgress)被激活后,进度的改变将触发ProgressChanged事件
                    backgroundworker.ProgressChanged += backgroundworker_ProgressChanged;
                    //设置为可报告进度情况的后台处理
                    backgroundworker.WorkerReportsProgress = true;
                    backgroundworker.RunWorkerAsync();
                }
                else
                {
                    ProgressBar1.Value = 0;
                    ProgressBar1.IsIndeterminate = true;
                }
            }
            //进度改变处理
            void backgroundworker_ProgressChanged(object sender, ProgressChangedEventArgs e)
            {
                Dispatcher.BeginInvoke(() => {
                    //把进度改变的值赋给ProgressBar1进度条的值
                    ProgressBar1.Value = e.ProgressPercentage;
                });
            }
            //后台操作完成
            void backgroundworker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
            {
                Dispatcher.BeginInvoke(() => { 
                //隐藏进度条;
                    ProgressBar1.Visibility = Visibility.Collapsed;
                });
            }
            //后台操作处理
            void backgroundworker_DoWork(object sender, DoWorkEventArgs e)
            {
                for (int i = 0; i < 100; i++)
                {
                    i += 10;
                    //赋值当前进度的值,
                    backgroundworker.ReportProgress(i);
                    //为了能看到进度条的效果。这里用进程暂停了1秒
                    System.Threading.Thread.Sleep(1000);
                }
            }
    
            
            public ResourceDictionary Resources { get; set; }
    
           
            
        }
        
    }
    
  • 相关阅读:
    easy Html5 Jquery Mobile之ToolBars(Header and Footer)
    Windows Phone7 性能
    easy Html5 Jquery Mobile之Buttons
    开篇,从这里开始。
    SkyDrive APIs——用户登录和APP授权(2)
    Windows Phone的强大语音控制,让你的Phone大秀一把
    SkyDrive APIs之——操作文件和文件夹(3)
    Mango in my mind 之 Live Tile
    SkyDrive APIs——搭建环境(1)
    windows10安装redis
  • 原文地址:https://www.cnblogs.com/MyBeN/p/3326211.html
Copyright © 2020-2023  润新知