Можно ли создать "новый MouseButtonEventArgs" в Silverlight?
Я новичок в 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 ответ
Решение
Результаты моего исследования показали, что это невозможно в Silverlight -.-