热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

【WPF】实现过渡弹框

前言在导出Excel时候可能需要一个弹框来提示用户导出以完成的功能可是要怎么做呢?这里有个方法可以实现,做个笔记方便以后的快速调用,也希望你能有所收获内容前台界

 前言

  在导出Excel时候 可能需要一个弹框来提示用户 导出以完成的 功能 可是要怎么做呢?

  这里有个方法可以实现,做个笔记 方便以后的快速调用,也希望你能有所收获

 内容

前台界面(XMAL):

48" 48"> "1" x:Name="textBlockDisplay" VerticalAlignment="Center" Text="导出成功!"> "loading" Visibility="Collapsed" Grid.Column="0">

PS: Canvas 画布,设置透明色 起遮罩层的作用
    Border 边框
    textBlockDisplay 为显示的内容 后台可以自定义

后台代码(.CS):

View Code
/// 
        /// 显示正在执行结果界面
        /// 
        /// 执行结果界面提示文字
        private void ShowDialog(string resultText)

        {
            gridDialog.Visibility = System.Windows.Visibility.Visible;
            borderShadow.Visibility = System.Windows.Visibility.Visible;
            gridResult.Visibility = System.Windows.Visibility.Visible;

            loading.Visibility = System.Windows.Visibility.Hidden;

            textBlockDisplay.Text = resultText;

            //计算位置使显示居中
            gridDialog.Margin = new Thickness(0, scrollViewer1.VerticalOffset-50, 0, 0);//scrollViewer1.VerticalOffset为滚动过的位置
            gridDialog.Height = scrollViewer1.ViewportHeight+100;

            DispatcherTimer timer = new DispatcherTimer();
            timer.Interval = TimeSpan.FromSeconds(1d);
            timer.Tick += (sender, e) =>
            {
                gridDialog.Visibility = System.Windows.Visibility.Hidden;
            };
            timer.Start();
        }
//PS:由于使用到了滚动条所以才有了 设置高度的 那个动作 这个看实际需求来进行修改

 调用:
   TaskScheduler scheduler = TaskScheduler.FromCurrentSynchronizationContext();
                    CancellationToken token = new CancellationToken();
                    Task.Factory.StartNew(new Action(() =>

{
//里面写你的实际需求  如导出Excel的代码
})).ContinueWith(w => { ShowDialog("导出Excel成功!"); }, token, TaskContinuationOptions.None, scheduler);

//PS:调用中使用到了线程中的异步操作 这部分不是很懂 调用的片段可以放到  按钮触发事件

  结果
  实现的效果如下

        

 


推荐阅读
author-avatar
暴君1566
这个家伙很懒,什么也没留下!
Tags | 热门标签
RankList | 热门文章
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有