2

我想在 C# xaml 中以编程方式单击按钮。我发现没有像 PerformClick 这样的方法。还有什么可以替代它。

实际上,我有 10 个带有 x:Name 的按钮,例如 btn1、btn2、btn3 等...我有一个从 1 到 10 的数字,基于该数字我需要单击这些按钮。我打算通过使用来获得控制权

ParentControl.FindName('btn' + number)

然后从中触发事件。但由于 Windows 8 C# 中没有 PerformClick 方法,因此我需要一个替代方法。

举办活动 在此处输入图像描述

4

2 回答 2

6

这是如何做到的......

假设您在XAML文件中定义了此按钮:

<Button Grid.Column="0" Grid.Row="0" x:Name="DefaultSnooze" Content="Default Snooze" Click="SendToast_Click" Height="34" Width="134"/>

然后在您希望Click以编程方式触发事件处理程序代码的代码后面执行此操作:

ButtonAutomationPeer peer = new ButtonAutomationPeer(DefaultSnooze);

IInvokeProvider invokeProv = peer.GetPattern(PatternInterface.Invoke) as IInvokeProvider;
invokeProv.Invoke();

我现在对其进行了测试,效果很好。:)


来源:如何以编程方式单击按钮

于 2014-04-05T19:08:07.503 回答
-1

您应该能够使用:

RaiseEvent(new RoutedEventArgs(Button.ClickEvent, myButton));

在 XAML 视图的代码隐藏中。

RaiseEvent可用于任何 UIElement 派生类。

于 2012-09-20T09:44:58.210 回答