首页 > 解决方案 > 当我想通过打开文件来启动 WPF 应用程序时,我该怎么做

问题描述

您好我正在编写一个简单的 WPF 来显示二进制文件内容。

所以我想在尝试打开文件时启动应用程序。

但我不知道从哪里开始。

如何以及在哪里获取要打开的文件的数据?

我尝试从

StartupEventArgs e

并从

Environment.GetCommandLineArgs();

bot 返回空字符串数组。

我已经可以处理文件并在运行时打开它们,但不知道如何在开始时打开它们。

有谁知道从哪里开始。

提前致谢

标签: c#wpf

解决方案


当您在“文件”->“打开方式”对话框中选择 WPF 应用程序时,您将把它作为参数传递给您的应用程序。

因此,如果您要像这样设置App.xaml

<Application x:Class="WpfApp1.App"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:local="clr-namespace:WpfApp1"
         StartupUri="MainWindow.xaml"
         Startup="Application_Startup">
...
</Application>

您可以在App.xaml.cs中侦听启动事件:

  private void Application_Startup(object sender, StartupEventArgs e)
  {
     foreach (var arg in e.Args)
     {
        MessageBox.Show(arg);
     }
  }

出于演示目的,我只是在消息框中输出所有参数,因为很难及时将调试器附加到进程。现在,如果我们使用该应用程序打开任何文件: 打开文件 使用 WPF 应用程序打开

我们将看到:

参数消息框

所以文件路径将作为第一个参数传递给应用程序。从那里您可以随心所欲地使用它。

如果您将文件类型与您的应用程序相关联,您将通过双击该文件获得相同的行为。如果您的应用程序将使用像 Wix 这样的已安装程序进行安装,您可以选择将某些文件类型直接关联为安装的一部分。


推荐阅读