WFP loading 窗口显示 SplashScreen

 public partial class App : Application
  {
    protected override void OnStartup(StartupEventArgs e)
    {
      SplashScreen splashScreen = new SplashScreen("pic.jpg");
      splashScreen.Show(true);
      base.OnStartup(e);
    }
  }

 

这个系统自带的 SplashScreen 不是太好,不能自定义。。。

下面是我自定义的 SplashWind :

canCloseSplash 用来判断是否可以关闭这个loading自定义窗口。原理是在主窗口的Loaded事件里设置 App.canCloseSplash =true;
在自定义的SplashWind 里用个计时器检查 App.canCloseSplash 是否=true,等于的话就关闭自己。

 public partial class App : System.Windows.Application
    {
        public static bool canCloseSplash = false;

        protected override void OnStartup(System.Windows.StartupEventArgs e)
        {
            SplashWind splashWind = new SplashWind();
            splashWind.Show();
           // System.Windows.SplashScreen splashScreen = new System.Windows.SplashScreen("1.jpg");
          //  splashScreen.Show(true,true);
            base.OnStartup(e);

        }
    }

  

 

    public partial class SplashWind : Window
    {
        public SplashWind()
        {
            InitializeComponent();
            Topmost = true;
            t.Interval = TimeSpan.FromMilliseconds(30);
            t.Tick += new EventHandler(t_Tick);
            t.Start();
        } 
        
        DispatcherTimer t = new DispatcherTimer();

        void t_Tick(object sender, EventArgs e)
        {
            if (App.canCloseSplash) {
                t.Stop();
                Close();
            
            }
        }

    }

  

SplashWind UI:


<Window x:Class="TestWebBrowser.SplashWind"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="SplashWind" Height="313" Width="509"
        ResizeMode="NoResize" WindowStyle="None"   ShowInTaskbar="False"
WindowStartupLocation="CenterScreen" Background="Blue" BorderThickness="5" BorderBrush="AliceBlue" 
        >
    <Grid>
        <Label Foreground="White" FontSize="22" HorizontalContentAlignment="Center" VerticalContentAlignment="Center">Loading........</Label>
    </Grid>
</Window>

 

主窗口Loaded事件里告诉SplashWind可以关闭了:  

void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
App.canCloseSplash = true;
}

 

转载于:https://www.cnblogs.com/wgscd/p/9395926.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值