【问题标题】:Opening files from Windows Explorer in my Metro App在我的 Metro 应用程序中从 Windows 资源管理器打开文件
【发布时间】:2014-07-07 15:17:39
【问题描述】:

来自 Windows 窗体背景,当用户尝试从 Windows 资源管理器打开文本文件时,我习惯于在 Program.cs 文件中处理传递给我的应用程序的参数,以便我的应用程序可以向用户显示其内容。

但是,在 Metro 风格的应用程序中,我们不再有 Program.cs 文件。我们有 App.xaml 或 App.xaml.cs 文件。

似乎我找不到相关文档,我可以尝试在 App.xaml.cs 文件中以“通常”的方式进行操作,但我什至不确定这是否是正确的方法.我已将适当的功能和文件类型关联添加到我的 Metro 风格应用程序中,但除此之外我不知道从哪里开始。

我们如何将支持的文件从 Documents 文件夹打开到我们自己的 Metro 风格应用程序中?

【问题讨论】:

  • 我只想指出,我知道这是可能的,即使当前 Metro 风格应用程序存在限制。我知道这一点,因为当我在我的 Metro 风格应用程序支持的 Windows 资源管理器中双击一个文件时,Windows 会弹出一个小对话框,询问我是否想在我的 Metro 风格应用程序中打开这个文件。唯一的问题是:如何在我的代码中处理它,以便我可以真正获取文件信息?
  • 我想,我只是想通了。我很快就会发布答案。

标签: c# .net windows-8 microsoft-metro


【解决方案1】:

【讨论】:

  • 这正是我刚刚发现的,感谢 Intellisense 哈哈。谢谢@Jeff!
【解决方案2】:

您可以通过两个特定步骤来处理此问题:

  1. 在清单中声明文件扩展名。为此,您可以在 VS 的解决方案资源管理器中打开 package.appxmanifest,转到声明选项卡,然后添加“文件类型关联”声明和相关信息。
  2. 在您的激活处理程序中,您会看到甚至有一个“Kind”参数。这将是文件启动(从资源管理器或其他地方)的“文件”。您将在同一对象的“文件”属性中获取文件。

完整的详细信息是here。获得文件后,您可以使用标准 Windows.Storage API 访问这些文件。

【讨论】:

    【解决方案3】:
    1. 在解决方案资源管理器中打开 package.appxmanifest。
    2. 选择“声明”选项卡。
    3. 从下拉列表中选择文件类型关联,然后单击添加。
    4. 输入 txt 作为名称。
    5. 输入 .txt 作为文件类型。
    6. 输入“images\Icon.png”作为徽标。

    在应用包中添加合适的图标

    在c#中,你需要处理OnFileActivated事件

    protected override void OnFileActivated(FileActivatedEventArgs args)
    {
     // TODO: Handle file activation
    
    // The number of files received is args.Files.Size
    // The first file is args.Files[0].Name
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多