【发布时间】:2015-06-18 17:06:51
【问题描述】:
无法了解如何为 Windows Phone 8.1 Silverlight 应用程序使用文件选择器合同。所有文档都与 Windows Store 8.1 应用程序相关,但在 https://msdn.microsoft.com/ 处没有提及与 Silverlight 8.1 应用程序相关的内容。
【问题讨论】:
标签: silverlight windows-phone-8.1 windows-phone-sl-8.1
无法了解如何为 Windows Phone 8.1 Silverlight 应用程序使用文件选择器合同。所有文档都与 Windows Store 8.1 应用程序相关,但在 https://msdn.microsoft.com/ 处没有提及与 Silverlight 8.1 应用程序相关的内容。
【问题讨论】:
标签: silverlight windows-phone-8.1 windows-phone-sl-8.1
与Share Target的方法相同。
private void Application_Launching(object sender, LaunchingEventArgs e)
{
var fileOpenPickerArgs = (e as PhoneFileOpenPickerLaunchingEventArgs);
if (fileOpenPickerArgs != null)
{
this.FileOpenPickerUI = fileOpenPickerArgs.FileOpenPickerActivatedEventArgs.FileOpenPickerUI;
}
}
您可以创建自己的 UriMapper,以在使用 FilePickerArgs 启动应用时导航到 FilePickerPage:
public class FilePickerUriMapper : UriMapperBase
{
public override Uri MapUri(Uri uri)
{
if ((Application.Current as App).FileOpenPickerUI != null)
{
return new Uri(uri.ToString().Replace("MainPage", "FilePickerPage"), UriKind.Relative);
}
return uri;
}
}
在 InitializePhoneApplication 方法中将 RootFrame UriMapper 属性设置为自定义 UriMapper:
RootFrame.UriMapper = new FilePickerUriMapper();
此外,您可以从应用程序开始页面处理导航,在这种情况下,您不需要实现 UriMapper。
为 FilePicker 创建新页面并使用您从 LaunchingEventArgs 获取的 FileOpen(Save)PickerUI 处理用户选择或添加文件。
P.S 当你被 FilePickerContract 调用时,你不能改变 ApplicationBar。
【讨论】: