可以在Silverlight中创建“new MouseButtonEventArgs”吗?

时间:2012-11-08 18:18:32

标签: silverlight silverlight-4.0 contextmenu mouseevent right-click

我是Silverlight的新手,我需要从我的应用程序中的另一个事件处理程序激活MouseRightButtonDown(object sender, MouseButtonEventArgs e)

我发现,在WPF中可以做这样的事情:

public void OnContextMenuOpened(object sender, RoutedEventArgs e) {            
    MouseButtonEventArgs args = new  MouseButtonEventArgs(
        InputManager.Current.PrimaryMouseDevice, 
        0,
        MouseButton.Right);
     MouseRightButtonDown(sender, args);
}

但我在Silverlight中既没有InputManager-Class也没有MouseButton-Class ......通常可以实现类似的东西吗?

我想这样做,因为我尝试借助鼠标右键选择DataGridRow(在自定义控件中)。没有上下文菜单很容易,但当我打开上下文菜单时,上下文菜单打开,事件不会被触发......

我的代码段:

public override void OnApplyTemplate() {
    DataGrid = (DataGrid)GetTemplateChild("DataGrid");
    DataGrid.MouseRightButtonDown += DataGridMouseRightButtonDown;

    ContextMenu = (ContextMenu)GetTemplateChild("ContextMenu");
    ContextMenu.Opened += OnContextMenuOpened;
}

private void DataGridMouseRightButtonDown(object sender, MouseButtonEventArgs e) {
    //My code to select an DataGridRow
}

public void OnContextMenuOpened(object sender, RoutedEventArgs e) {  
    //This event-handler now will be always activated if I do 
    //right-mouse-button-click
}

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

我的研究结果显示,在silverlight-.-

中是不可能的