C# 4.0 如何在自定义超链接按钮上创建右键单击和中键单击事件?

C# 4.0 如何在自定义超链接按钮上创建右键单击和中键单击事件?,c#-4.0,silverlight-5.0,C# 4.0,Silverlight 5.0,我正在创建来自Silverlight HyperlinkButton的自定义超链接按钮,我想在其上创建右键单击和中键单击事件。请给我一些帮助 谢谢, Gobind我会添加两个事件(如MiddleClick和rightsclick),然后处理MouseUp(或者MouseDown,如果您想向下截取),然后根据MouseUp事件的详细信息触发两个事件中的一个。例如: public MyControl() { InitializeComponent(); MouseUp += OnMo

我正在创建来自Silverlight HyperlinkButton的自定义超链接按钮,我想在其上创建右键单击和中键单击事件。请给我一些帮助

谢谢,
Gobind

我会添加两个事件(如
MiddleClick
rightsclick
),然后处理
MouseUp
(或者
MouseDown
,如果您想向下截取),然后根据MouseUp事件的详细信息触发两个事件中的一个。例如:

public MyControl()
{
    InitializeComponent();
    MouseUp += OnMouseUp;
}

void OnMouseUp(object sender, MouseButtonEventArgs e)
{
    if (e.ChangedButton == MouseButton.Middle)
    {
        OnMiddleClick(e);
        e.Handled = true;
        return;
    }
    if (e.ChangedButton == MouseButton.Right)
    {
        OnRightClick(e);
        e.Handled = true;
        return;
    }
}

public event MouseButtonEventHandler RightClick;

protected virtual void OnRightClick(MouseButtonEventArgs e)
{
    var handler = RightClick;
    if (handler != null) handler(this, e);
}

public event MouseButtonEventHandler MiddleClick;

protected virtual void OnMiddleClick(MouseButtonEventArgs e)
{
    var handler = MiddleClick;
    if (handler != null) handler(this, e);
}

谢谢你的回复,彼得。我正在使用Silverlight超链接按钮,Silverlight中不存在MouseUp事件。我可以在MouseRightButtonUp上创建右键单击,但我需要使用JavaScript创建中键单击,因为我在web上读了很多书,没有办法使用xaml/C来监听中键单击。那么我能知道如何使用JS收听鼠标中键吗??