在地铁风格应用程序中模拟按钮单击

本文关键字:模拟 按钮 单击 应用程序 地铁 风格 | 更新日期: 2023-09-27 18:34:34

我正在构建一个地铁风格的应用程序,我需要知道是否有办法以编程方式触发按钮点击。

我的 xaml 中有这个密码框和按钮:

<PasswordBox IsPasswordRevealButtonEnabled="True" KeyDown="On_text_KeyDown" x:Name="SomePW" FontSize="50" KeyDown="On_text_KeyDown" Margin="0,0,0,190" Height="67" Width="363"/>
<Button Background="White" x:Name="Button_Go" Foreground="Black" Margin="20,0,0,190" Content="Go" FontSize="20" Click="Go_click" Height="67" Width="60"/>

在我的 C# 代码中,这是处理密码框中按键的函数:

private void On_text_KeyDown(object sender, RoutedEventArgs e)
    {
        KeyEventArgs K = (KeyEventArgs)e;
        if (K.Key == Windows.System.VirtualKey.Enter)
        {
            //<TO-DO> Simulate Button Click Here
        }
    }

问题是我似乎找不到一种方法来模拟按钮点击......有人可以帮忙吗?

在地铁风格应用程序中模拟按钮单击

简单地调用这个是否有问题,或者您是否正在寻找一种通用方法来调用任何按钮上的 Click 事件,也许可以自动化它?

Go_click(this, new RoutedEventArgs());

你可以试试这个:

ButtonAutomationPeer peer = new ButtonAutomationPeer( someButton );
IInvokeProvider invokeProv =  peer.GetPattern( PatternInterface.Invoke ) as InvokeProvider;
invokeProv.Invoke();

另一种选择如下:

SomeButton.RaiseEvent(new RoutedEventArgs(Button.ClickEvent));

希望这有帮助!!