不經意間發現了wpf的這個小玩意,感覺蠻有意思的。
我在項目中添加了一張圖片 如圖:
然后再這張圖片的屬性中設置它的生成操作為SplashScreen 如圖:
之后f5啟動程序,你會發現在你主程序啟動之前會出現一個0.5秒的動畫,當然這個是默認的,您可以通過程序來進行對它的控制。
博友心聲:怎么控制呢?
DebugLZQ:首先讓我們看看這個過程到底發生了什么,用Reflector反編譯PE文件如下:
從上面的il代碼可以很直觀地看出來,其實它是先實例化了一個SplashScreen,然后調用了它的Show方法而已。
如果是這樣的話,我們當然也可以自己寫代碼來實現,MSDN文檔關於SplashScreen的描述地址為:http://msdn.microsoft.com/zh-tw/library/cc647682.aspx 查閱相關的方法,如下:
則我們可以通過提過如下實現:
首先,讓我們將圖片的生成操作修改為“嵌入的資源”
然后是編碼實現,DebugLZQ提供完整代碼如下:
/// <summary>
/// App.xaml 的交互邏輯
/// </summary>
public
partial
class
App : Application
{
protected
override
void
OnStartup(StartupEventArgs e)
{
SplashScreen s =
new
SplashScreen(
"DebugLZQ.JPG"
);
s.Show(
false
);
s.Close(
new
TimeSpan(0, 0, 10));
base
.OnStartup(e);
}
}
|
注意事項(來自MSDN,具體請參考MSDN文檔:http://msdn.microsoft.com/zh-tw/library/cc647682.aspx):
1.在部分信任中無法使用 SplashScreen 類別。
2.SplashScreen 類別不能用於 XAML 瀏覽器應用程式 (XBAP) 中,因為這些應用程式使用不同的啟動架構。