Win10的UWP之进度条
2024-08-23 05:47:22
关于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;
}
我们来看一下运行的效果吧
这是模拟了手机的界面运行的结果
最新文章
- ABP源码分析三十八: ABP.Web.Api.OData
- Git 工作流程
- 由Memcached升级到 Couchbase的 Java 客户端的过程记录(三)
- Net中httpResponse和httpRequest的简单实用;
- .net操作数据库,史上最牛逼的方法,你见过这种方法吗
- Wince下sqlce数据库开发(二)
- C++中引用的本质
- sqlserver中的 数据转换 与 子查询
- JAR WAR EAR包的区别
- (转)How to build an Apple Push Notification provider server (tutorial)
- 基尔霍夫矩阵题目泛做(AD第二轮)
- ajax面试汇总
- 为什么我离开Mac for Windows:苹果已经放弃了[译]
- 关于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解决办法
- POJ 3264 Balanced Lineup 【线段树】
- 19_集合_第19天(List、Set)_讲义
- matlab快捷键大全
- object-c 获得目录(包括子目录)下所有文件和文件夹路径
- IndiaHacks 2016 - Online Edition (Div. 1 + Div. 2) A. Bear and Three Balls 水题
- WINDOWS安装mysql5.7.20
热门文章
- [SVG] Add an SVG as a Background Image
- iOS8.1 编译ffmpeg和集成第三方实现直播(监控类)
- erlang的Socket参数含义
- 【BZOJ 1005】[HNOI2008]明明的烦恼(化简的另一种方法)
- erlang浅谈
- Spring Boot 学习笔记一(SpringBoot启动过程)
- Cordova之如何用命令行创建一个项目(完整示例)
- 配置ANDROID_HOME
- 经Gradle采取Jenkins的build
- 从Client应用场景介绍IdentityServer4(三)