【问题标题】:File picker contracts for Windows Phone 8.1 Silverlight appWindows Phone 8.1 Silverlight 应用程序的文件选择器合同
【发布时间】: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


    【解决方案1】:

    Share Target的方法相同。

    1. 在您的 Package.appxmanifest 文件中声明打开/保存选择器。
    2. 在 PhoneApplicationService.Launching 事件处理程序中检查 args 是否可以强制转换为 PhoneFileOpen(Save)PickerLaunchingEventArgs:
    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();
      

      此外,您可以从应用程序开始页面处理导航,在这种情况下,您不需要实现 UriMapper。

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

    P.S 当你被 FilePickerContract 调用时,你不能改变 ApplicationBar。

    【讨论】:

      猜你喜欢
      • 2023-04-04
      • 2014-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      相关资源
      最近更新 更多