Windows Phone 8.1 Silverlight应用程序的文件选择器合同

时间:2015-06-18 09:06:51

标签: 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应用程序相关。

1 个答案:

答案 0 :(得分:2)

Share Target完全相同。

  1. 在您的Package.appxmanifest文件打开/保存选择器中声明。
  2. 在PhoneApplicationService.Launching事件处理程序中检查args是否可以转换为PhoneFileOpen(保存)PickerLaunchingEventArgs:
  3. private void Application_Launching(object sender, LaunchingEventArgs e)
    {
        var fileOpenPickerArgs = (e as PhoneFileOpenPickerLaunchingEventArgs);
        if (fileOpenPickerArgs != null)
        {
            this.FileOpenPickerUI = fileOpenPickerArgs.FileOpenPickerActivatedEventArgs.FileOpenPickerUI;
        }
    }
    
    1. 您可以创建自己的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();
      

      此外,您可以从Application Start页面处理导航,在这种情况下,您不需要实现UriMapper。

    2. 为FilePicker创建新页面,并使用您从LaunchingEventArgs中获取的FileOpen(Save)PickerUI来处理用户选择或添加文件。

    3. P.S当您使用FilePickerContract调用时,无法更改ApplicationBar。