将鼠标单击发送到silverlight 2中的按钮

时间:2008-10-09 09:40:51

标签: silverlight events

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

6 个答案:

答案 0 :(得分:12)

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

您可以使用System.Windows.Automation.Peers中的按钮自动化同行来完成您想要的任务。

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

    IInvokeProvider ip = (IInvokeProvider)peer;
    ip.Invoke();
}

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

我不熟悉Silverlight,但我知道它使用.Net的紧凑沙箱,所以如果可以使用互操作性,你会在互联网上找到很多例子。

答案 3 :(得分:0)

我的页面中有CRUD操作按钮,保存,删除或更新后需要刷新数据网格中的数据,最简单的方法是将Click事件发送到“读取”按钮,从其他CRUD按钮< / p>

此代码触发该事件:

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

      //--At Finish refresh the datagrid
      btnRead_Click(btnRead, new RoutedEventArgs());
    }

答案 4 :(得分:0)

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

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

理想的方法是拥有一个共享函数,它可以从按钮点击处理程序以及需要的其他情况调用

答案 5 :(得分:-3)

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