原文:Win10的UWP之进度条

关于UWP的进度条的处理的方案有两种方案

我们新建一个项目,然后处理的界面如下的代码

<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions> <TextBlock Text="选择" FontSize="20"
Grid.Row="0"
HorizontalAlignment="Center"/>
<RadioButton Content="Determinate类型"
Height="71"
Name="radionButton1"
GroupName="Type"
Grid.Row="1"
HorizontalAlignment="Center"/>
<RadioButton Content="Indeterminate类型"
Height="71"
Name="radioButton2"
GroupName="Type"
IsChecked="True"
Grid.Row="2"
HorizontalAlignment="Center"/>
<Button Content="启动ProgressBar"
Height="72"
x:Name="Begin"
Click="Begin_Click"
Grid.Row="3"
HorizontalAlignment="Center"/>
<Button Content="取消ProgressBar"
Height="72"
x:Name="Cancel"
Click="Cancel_Click"
Grid.Row="4"
HorizontalAlignment="Center"
VerticalAlignment="Center"/>
<ProgressBar x:Name="ProgressBar" IsIndeterminate="True"
Grid.Row="5"
Height="24"/>

然后我们再来处理下界面的后台代码

public MainPage()
{
this.InitializeComponent();
//初始化界面时,设置进度条不可见
ProgressBar.Visibility = Visibility.Collapsed;
} private void Begin_Click(object sender, RoutedEventArgs e)
{
//启动进度条,并可以显示状态
ProgressBar.Visibility = Visibility.Visible; if (radionButton1.IsChecked==true)
{
//设置进度条的模式为不重复状态
ProgressBar.IsIndeterminate = false;
//启用定时器,再每下一秒改变原来的状态
DispatcherTimer timer = new DispatcherTimer();
timer.Interval = TimeSpan.FromSeconds(1);
timer.Tick += timer_Tick;
timer.Start();
}
else
{
ProgressBar.Value = 0;
ProgressBar.IsIndeterminate = true;
}
}
async void timer_Tick(object sender,object e)
{
if (ProgressBar.Value<100)
{
ProgressBar.Value += 10;
}
else
{
(sender as DispatcherTimer).Tick -= timer_Tick;
(sender as DispatcherTimer).Stop();
await new MessageDialog("进度100%").ShowAsync();
}
}
private void Cancel_Click(object sender, RoutedEventArgs e)
{
ProgressBar.Visibility = Visibility.Collapsed;
}

我们来看一下运行的效果吧

这是模拟了手机的界面运行的结果

最新文章

  1. ABP源码分析三十八: ABP.Web.Api.OData
  2. Git 工作流程
  3. 由Memcached升级到 Couchbase的 Java 客户端的过程记录(三)
  4. Net中httpResponse和httpRequest的简单实用;
  5. .net操作数据库,史上最牛逼的方法,你见过这种方法吗
  6. Wince下sqlce数据库开发(二)
  7. C++中引用的本质
  8. sqlserver中的 数据转换 与 子查询
  9. JAR WAR EAR包的区别
  10. (转)How to build an Apple Push Notification provider server (tutorial)
  11. 基尔霍夫矩阵题目泛做(AD第二轮)
  12. ajax面试汇总
  13. 为什么我离开Mac for Windows:苹果已经放弃了[译]
  14. 关于python3.6上传文件时报错:HTTPSConnectionPool(host=&#39;***.org&#39;, port=443): Max retries exceeded with url: /post (Caused by SSLError(SSLError(1, &#39;[SSL: CERTIFICATE_VERIFY_FAIL解决办法
  15. POJ 3264 Balanced Lineup 【线段树】
  16. 19_集合_第19天(List、Set)_讲义
  17. matlab快捷键大全
  18. object-c 获得目录(包括子目录)下所有文件和文件夹路径
  19. IndiaHacks 2016 - Online Edition (Div. 1 + Div. 2) A. Bear and Three Balls 水题
  20. WINDOWS安装mysql5.7.20

热门文章

  1. [SVG] Add an SVG as a Background Image
  2. iOS8.1 编译ffmpeg和集成第三方实现直播(监控类)
  3. erlang的Socket参数含义
  4. 【BZOJ 1005】[HNOI2008]明明的烦恼(化简的另一种方法)
  5. erlang浅谈
  6. Spring Boot 学习笔记一(SpringBoot启动过程)
  7. Cordova之如何用命令行创建一个项目(完整示例)
  8. 配置ANDROID_HOME
  9. 经Gradle采取Jenkins的build
  10. 从Client应用场景介绍IdentityServer4(三)