3

silverlight 应用程序中有按钮控件。我可以以编程方式向它发送鼠标单击事件吗?

4

6 回答 6

12

如果你还想这样做。您现在可以升级到 Silverlight 3.0 版或更高版本并执行以下操作:

您可以使用 System.Windows.Automation.Peers 中的按钮自动化对等方来完成您想要的。

if (button is Button)
{
    ButtonAutomationPeer peer = new ButtonAutomationPeer((Button)button);

    IInvokeProvider ip = (IInvokeProvider)peer;
    ip.Invoke();
}
于 2010-06-22T17:09:15.253 回答
1

出于安全原因,您不能触发 Click 事件,因为这样您就可以在用户不知情的情况下强制用户进入全屏模式。正如 Oli 所说,您可以直接调用 Click 事件处理程序,但实际上不能触发 Click 事件。

于 2008-10-09T12:01:03.063 回答
0

尝试使用 Automation Peers(如果您绝对需要以编程方式执行此操作)。

http://www.vbdotnetheaven.com/UploadFile/dbeniwal321/TriggerEvent01232009020637AM/TriggerEvent.aspx有一个使用 vb.net 的示例

理想的方法是拥有一个共享函数,该函数既可以从按钮单击处理程序中调用,也可以在其他需要的情况下调用

于 2010-02-22T10:23:12.987 回答
0

在 .Net 中执行此操作的经典方法是从 user32.dll 中 P/Invoke SendInput(),因为无法使用 .Net 框架执行此操作。

我不熟悉 Silverlight,但我知道它使用 .Net 的紧凑沙箱,所以如果互操作性可用,您会在 Internet 上找到大量示例。

于 2008-10-10T00:41:45.557 回答
0

我的页面中有用于 CRUD 操作的按钮,在保存、删除或更新之后,我需要刷新 Datagrid 中的数据,最简单的方法是将点击事件从其他 CRUD 按钮发送到“读取”按钮

此代码触发该事件:

    private void btnSave_Click(object sender, RoutedEventArgs e)
    {
  //.....Save Operation

      //--At Finish refresh the datagrid
      btnRead_Click(btnRead, new RoutedEventArgs());
    }
于 2010-01-10T20:49:05.297 回答
-3

我没有使用过 Silverlight,但我认为它与 Windows.Forms 和 WebControls 的过程相同。您只需要调用按钮的.Click(Object o, EventArgs e)方法。

于 2008-10-09T10:06:32.517 回答