Windows 8按钮在C#和Xaml中以编程方式单击

时间:2012-09-20 09:39:24

标签: c# xaml button windows-8 .net-4.5

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

实际上我有10个带x的按钮:名称如btn1,btn2,btn3等... 根据我需要点击这些按钮的数字,我有1到10的数字。我打算用

来控制
ParentControl.FindName('btn' + number)

然后从那里开火。但由于Windows 8 C#中没有PerformClick方法,因此我需要替代方案。

的RaiseEvent enter image description here

2 个答案:

答案 0 :(得分: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();

我现在测试它并且它工作得很漂亮。 :)


来源:How to programmatically click a button

答案 1 :(得分:-1)

你应该可以使用:

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

在XAML视图的代码隐藏中。

RaiseEvent可用于任何UIElement派生类。