我想在C#xaml中以编程方式单击按钮。我发现没有像PerformClick这样的方法。还有什么替代方案。
实际上我有10个带x的按钮:名称如btn1,btn2,btn3等... 根据我需要点击这些按钮的数字,我有1到10的数字。我打算用
来控制ParentControl.FindName('btn' + number)
然后从那里开火。但由于Windows 8 C#中没有PerformClick方法,因此我需要替代方案。
的RaiseEvent
答案 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();
我现在测试它并且它工作得很漂亮。 :)
答案 1 :(得分:-1)
你应该可以使用:
RaiseEvent(new RoutedEventArgs(Button.ClickEvent, myButton));
在XAML视图的代码隐藏中。
RaiseEvent
可用于任何UIElement派生类。