告诉系统APP能打开XXX类型的文件
在Package.appxmanifest文件选择声明->支持的文件类型->右侧修改关联文件类型。或者资源管理器中Package.appxmanifest->右键,打开方式,xml编辑器打开->找到applications节点下application节点,在该节点下添加:
<Extensions>
<uap:Extension Category="windows.fileTypeAssociation">
<uap:FileTypeAssociation Name=".txt">
<uap:SupportedFileTypes>
<uap:FileType>.txt</uap:FileType>
<uap:FileType>.rtf</uap:FileType>
</uap:SupportedFileTypes>
</uap:FileTypeAssociation>
</uap:Extension>
</Extensions>
上面例子添加了txt格式和rtf格式的文件类型关联(修改xml和点击修改效果相同)。用户具有选择文件打开方式的自由,通过上述操作用户在选择文件打开方式的时候,app会出现在默认列表中。
当用户通过打开文件激活app时获取并处理文件
重写OnFileActivated方法,该方法在用户通过打开文件激活app时发生,用户有可能一次性选择多个文件打开,因此args.Files是一个StorageFile数组。我们获取StorageFile就获得了打开文件的全部信息。然后导航到页面中,将file以参数的形式传递。在具体的页面中OnNavigateTo事件中处理
protected override void OnFileActivated(FileActivatedEventArgs args)
{
StorageFile file = args.Files[0] as StorageFile;
Frame rootFrame = Window.Current.Content as Frame;
if (rootFrame==null)
{
rootFrame = new Frame();
Window.Current.Content = rootFrame;
}
rootFrame.BackStack.Clear();
rootFrame.Navigate(typeof(MainPage),file);
Window.Current.Activate();
base.OnFileActivated(args);
}