win 8 ProgressRing加多线程
来源:互联网 发布:linux用户命令 编辑:程序博客网 时间:2024/06/02 16:10
当我们点击一个按钮执行放大 时,因为放大的数据可能很大,需要一定的等待时间,这个时候为了更好的体验,我们需要加一个ProgressRing,界面布局如下
<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}"> <Popup Name="popup" Visibility="Visible" IsOpen="False"> <Grid Width="{Binding ElementName=pageRoot,Path=ActualWidth}" Height="{Binding ElementName=pageRoot,Path=ActualHeight}" Background="#89000000"> <ProgressRing Visibility="Visible" Width="400" Height="400" Name="ring" IsActive="False" FontFamily="Global User Interface"></ProgressRing> </Grid> </Popup> <ScrollViewer ZoomMode="Enabled" ZoomSnapPointsType="None" MaxWidth="2000"> <Grid Name="grid" Background="White"> <Grid.RowDefinitions> <RowDefinition></RowDefinition> <RowDefinition></RowDefinition> <RowDefinition></RowDefinition> <RowDefinition></RowDefinition> <RowDefinition></RowDefinition> <RowDefinition></RowDefinition> <RowDefinition></RowDefinition> <RowDefinition></RowDefinition> <RowDefinition></RowDefinition> <RowDefinition></RowDefinition> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition></ColumnDefinition> <ColumnDefinition></ColumnDefinition> <ColumnDefinition></ColumnDefinition> <ColumnDefinition></ColumnDefinition> <ColumnDefinition></ColumnDefinition> <ColumnDefinition></ColumnDefinition> <ColumnDefinition></ColumnDefinition> <ColumnDefinition></ColumnDefinition> <ColumnDefinition></ColumnDefinition> <ColumnDefinition></ColumnDefinition> <ColumnDefinition></ColumnDefinition> <ColumnDefinition></ColumnDefinition> <ColumnDefinition></ColumnDefinition> <ColumnDefinition></ColumnDefinition> </Grid.ColumnDefinitions> </Grid> </ScrollViewer> </Grid> <Page.BottomAppBar> <AppBar> <StackPanel> <Button x:Name="largeButton" Style="{StaticResource ZoomInAppBarButtonStyle}" AutomationProperties.Name="放大" Click="largeButton_Click" /> </StackPanel> </AppBar> </Page.BottomAppBar>
后台初始化界面
private void initButton() { for (int i = 0; i < 10; i++) { for (int j = 0; j < 14; j++) { Button btn = new Button(); btn.Width = 60; btn.Height = 60; btn.BorderThickness = new Thickness(2); btn.BorderBrush = new SolidColorBrush(Colors.Black); btn.Foreground = new SolidColorBrush(Colors.Black); btn.Content = i.ToString() + "," + j.ToString(); Grid.SetRow(btn, i); Grid.SetColumn(btn, j); this.grid.Children.Add(btn); } } }
就是简单的在前台加入一些按钮,执行对这些按钮的放大。
private void largeButton_Click(object sender, RoutedEventArgs e) { //showLoading(); var task = Task.Factory.StartNew(() => showLoading()); //Task task = new Task(() => longTime()); //task.Start(); longTime();//如果没有多任务,直接执行这个函数,是不行的,前台线程会阻塞 task.Wait(); closeLoading(); } /// <summary> /// 显示加载 /// </summary> private void showLoading() { this.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { this.popup.IsOpen = true; this.ring.IsActive = true; }); } /// <summary> /// 关闭加载 /// </summary> private void closeLoading() { this.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { this.popup.IsOpen = false; this.ring.IsActive = false; }); } /// <summary> /// 耗时间的操作 /// </summary> private void longTime() { this.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => { for (int i = 0; i < 100; i++) { foreach (Button btn in this.grid.Children)//耗时间的操作 { btn.Width += 10; btn.Height += 6; } } }); }
0 0
- win 8 ProgressRing加多线程
- C# winform chart 曲线加多线程控制
- C# winform chart 曲线加多线程控制
- Socket网络编程聊天,加多线程
- win线程等待代码
- win 线程生亡
- 线程同步 win
- WIN内核线程池函数
- 使用WINSOCK加多线程写的一个下载模块(VB6.0)
- 跨线程程访问Win form 控件
- win apache php5.3非线程安全
- php5.3非线程安全下载-win
- 线程封装类(3) win
- win RT != winRT inside Win 8
- xlistview加多条目
- Win 8初体验
- win 8 新特性
- Win 8系统下载
- 学习JQuery - 6
- firefox debug工具实用又好用
- 图像处理的简单优化-06: SIMD
- Hibernat映射set,map,list 一堆多,多对一 manytoone[继承映射注解版]实例(十九)
- 在android系统中开发DLNA
- win 8 ProgressRing加多线程
- 加密狗原理介绍
- android开发时,finish()跟System.exit(0)的区别
- 测试谷歌联盟的
- RAW+ASM 的RAC 10g 安装文档
- 递归的清空当前目录的指令
- lua学习
- android 常用adb 和 adb shell 命令
- 弧形文字text along path