这是 WPF 的解决方案
Matthew 向我展示了如何在 Windows 窗体应用程序中执行此操作,我进行了一些研究并找到了 wpf 的解决方案。
这是我一步一步做的..
首先我在 App.Xaml.cs 中添加了一个 void Main 函数
public partial class App : Application
{
[STAThread]
public static void Main()
{
}
}
编译时显示错误说应用程序有多个入口点。双击时,它导航到实际入口点所在的 App.g.cs 文件..
public partial class App : System.Windows.Application {
/// <summary>
/// InitializeComponent
/// </summary>
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
public void InitializeComponent() {
#line 4 "..\..\App.xaml"
this.StartupUri = new System.Uri("MainWindow.xaml", System.UriKind.Relative);
#line default
#line hidden
}
/// <summary>
/// Application Entry Point.
/// </summary>
[System.STAThreadAttribute()]
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
public static void Main() {
FileOpen.App app = new FileOpen.App();
app.InitializeComponent();
app.Run();
}
}
.
现在我删除了这里的所有行并将入口点复制到 App.xaml.cs
并且还从 App.xaml 中删除了 startupURI
<Application x:Class="FileOpen.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
>
<Application.Resources>
</Application.Resources>
现在是 App.g.cs
public partial class App : System.Windows.Application {
/// <summary>
/// Application Entry Point.
}
还有 App.xaml.cs
public partial class App : Application
{
[System.STAThreadAttribute()]
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
public static void Main(string[] args)
{
MainWindow window = new MainWindow(args != null && args.Length > 0 ? args[0] : "");
window.ShowDialog();
}
}
还有主窗口
public partial class MainWindow : Window
{
public MainWindow(string filePath)
{
InitializeComponent();
if (filePath != "")
using (var fs = new FileStream(filePath, FileMode.Open, FileAccess.Read))
using (var sr = new StreamReader(fs)) txt.Text = sr.ReadToEnd();
}
}