这次要实现的效果如下图,在程序启动时首先显示:
此窗体(闪屏)相当简单,我只是用一副图作为窗体背景,在程序启动时调用,为了模拟加载,用线程延时演示了一下加载百分比。
窗体(SplashScreen.xaml)的XAML代码如下:
xmlns ="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x ="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class ="WpfQQ.SplashScreen"
xmlns:local ="clr-namespace:WpfQQ"
x:Name ="Window"
Title ="SplashScreen" Height ="97" Width ="380" WindowStartupLocation ="CenterScreen" WindowStyle ="None"
Background ="BurlyWood" BorderBrush ="BurlyWood" BorderThickness ="0" ShowInTaskbar ="False" ResizeMode ="NoResize" >
< Grid Margin ="0,0,0,0" Height ="97" VerticalAlignment ="Top" Width ="380" >
< Grid.ColumnDefinitions >
< ColumnDefinition />
< ColumnDefinition Width ="0*" />
</ Grid.ColumnDefinitions >
< Image Margin ="0,1,0.888,0" Source ="loading.png" Stretch ="Fill" />
< Label Margin ="150,33,31.888,37" x:Name ="label2"
Content =" {Binding Message, Source={x:Static local:MessageListener.Instance}} " Foreground ="Black" />
</ Grid >
</ Window >
其中的label2我们用于显示加载百分比等信息。
在App.xaml.cs中调用:
protected override void OnStartup(StartupEventArgs e)
{
Splasher.Splash = new SplashScreen();
Splasher.ShowSplash();
for (int i = 0; i < 100; i++)
{
MessageListener.Instance.ReceiveMessage(string.Format("Loading {0}%,Please waiting", i+1));
Thread.Sleep(20);//延时
}
base.OnStartup(e);
}