silverlight 应用程序中有按钮控件。我可以以编程方式向它发送鼠标单击事件吗?
6 回答
如果你还想这样做。您现在可以升级到 Silverlight 3.0 版或更高版本并执行以下操作:
您可以使用 System.Windows.Automation.Peers 中的按钮自动化对等方来完成您想要的。
if (button is Button)
{
ButtonAutomationPeer peer = new ButtonAutomationPeer((Button)button);
IInvokeProvider ip = (IInvokeProvider)peer;
ip.Invoke();
}
出于安全原因,您不能触发 Click 事件,因为这样您就可以在用户不知情的情况下强制用户进入全屏模式。正如 Oli 所说,您可以直接调用 Click 事件处理程序,但实际上不能触发 Click 事件。
尝试使用 Automation Peers(如果您绝对需要以编程方式执行此操作)。
http://www.vbdotnetheaven.com/UploadFile/dbeniwal321/TriggerEvent01232009020637AM/TriggerEvent.aspx有一个使用 vb.net 的示例
理想的方法是拥有一个共享函数,该函数既可以从按钮单击处理程序中调用,也可以在其他需要的情况下调用
在 .Net 中执行此操作的经典方法是从 user32.dll 中 P/Invoke SendInput(),因为无法使用 .Net 框架执行此操作。
我不熟悉 Silverlight,但我知道它使用 .Net 的紧凑沙箱,所以如果互操作性可用,您会在 Internet 上找到大量示例。
我的页面中有用于 CRUD 操作的按钮,在保存、删除或更新之后,我需要刷新 Datagrid 中的数据,最简单的方法是将点击事件从其他 CRUD 按钮发送到“读取”按钮
此代码触发该事件:
private void btnSave_Click(object sender, RoutedEventArgs e)
{
//.....Save Operation
//--At Finish refresh the datagrid
btnRead_Click(btnRead, new RoutedEventArgs());
}
我没有使用过 Silverlight,但我认为它与 Windows.Forms 和 WebControls 的过程相同。您只需要调用按钮的.Click(Object o, EventArgs e)
方法。