按钮单击"应用程序启动"

Jis*_*han 0 c# wpf

所以我在一个按钮内部有一个函数,我想在应用程序启动时立即触发,我这样做:

public partial class App : Application
{
    private void App_OnStartup(object sender, StartupEventArgs e)
    {

//get button reference

        Button btn = ((MainWindow)Current.MainWindow).btnJSON;

//programmatically simulate button click

        ButtonAutomationPeer peer =
          new ButtonAutomationPeer(btn);
        IInvokeProvider invokeProv =
          peer.GetPattern(PatternInterface.Invoke)
          as IInvokeProvider;
        invokeProv.Invoke();
    }
}
Run Code Online (Sandbox Code Playgroud)

然而,这导致了一个nullReferenceExeption.我如何实现这一点,即在App stratup上调用功能或模拟按钮点击?

这是按钮签名:

public void btnJSON_Click(object sender, RoutedEventArgs e)
{
     ...
} 
Run Code Online (Sandbox Code Playgroud)

谢谢.

小智 5

而不是尝试调用按钮单击,只需调用按钮单击调用的方法.

public partial class App : Application
{
    private void App_OnStartup(object sender, StartupEventArgs e)
    {
        ((MainWindow)Current.MainWindow).DoStuff();
    }
}
Run Code Online (Sandbox Code Playgroud)

在MainWindow.xaml.cs中:

public void DoStuff()
{
    // TODO: Do Stuff
}
Run Code Online (Sandbox Code Playgroud)

只需按下按钮单击处理程序即可调用该方法.

public void btnJSON_Click(object sender, RoutedEventArgs e)
{
     DoStuff();
} 
Run Code Online (Sandbox Code Playgroud)