在WinRT開發中可以調用其他的應用或者傳統型程式來開啟檔案,這和WP7時代固定的幾個Launcher相比,功能性更強。
直接上代碼,簡單明了:
public void OpenFile(StorageFile file,bool withPicker) { if (file != null) { if (withPicker) { //請使用者選擇開啟檔案 var options = new LauncherOptions { DisplayApplicationPicker = true }; options.UI.PreferredPlacement = Placement.Below; Launcher.LaunchFileAsync(file, options); } else { //直接使用預設關聯程式開啟 Launcher.LaunchFileAsync(file); } } }
需要給Launcher引入命名空間 using Windows.System;
關於LauncherOptions,有以下幾個屬性:
ContentType :對網路上的URL設定檔案類型;
DisplayApplicationPicker :是否顯示選擇開啟檔案列表;
FallbackUri:沒有對應的開啟檔案,沒有處理檔案類型或協議的應用程式時,使用者應跳轉到瀏覽器的URI值;
PreferredApplicationDisplayName:沒有對應的開啟檔案,沒有處理檔案類型或協議的應用程式時,使用者安裝的應用程式在儲存區中的顯示名稱;
PreferredApplicationPackageFamilyName:沒有處理檔案類型或協議的應用程式時,使用者安裝的應用程式在儲存區中的包系列顯示名稱的值;
TreatAsUntrusted:是否顯示警告提示使用者,讓使用者再次確認開啟;
UI:啟動應用程式時預設的介面選項;
需要注意的是,由於WinRT APP的檔案系統並非傳統案頭的檔案系統(儘管是傳統案頭檔案系統中的一個檔案夾,但是由於許可權問題,可以理解為類似WP7的隔離儲存區 (Isolated Storage)空間),當我們使用這種方式開啟一個檔案並用第三方程式對該檔案進行修改之後,該修改不會對原檔案有任何操作。
錦燕雲微博 http://www.weibo.com/jinyanyunhttp://www.cnblogs.com/vistach/archive/2012/10/18/Windows8_Win8_WinRT_MetroStyleApps_ModernUIApps_Launcher_LauncherOptions_OpenFile.html