Uma das coisas mais frustrantes no Silverlight com toda certeza é ver aquela "caixinha" com informações quando clicamos com o botão direito, porque quando executamos essa ação estamos, na maioria das vezes, buscando novas funcionalidades ou informações que dizem respeito ao que estamos vendo naquele momento, mas esse comportamento original pode ser alterado para nossa alegria.
No exemplo a seguir iremos apresentar um menu de contexto codificando o evento "MouseRightButtonDown" do DataGrid:
xmlns:grid="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data" xmlns:toolkit="http://schemas.microsoft.com/winfx/2006/xaml/presentation/toolkit" > < grid :DataGrid MouseRightButtonDown="_grid_MouseRightButtonDown" > < toolkit:ContextMenuService.ContextMenu > < toolkit:ContextMenu> < toolkit:MenuItem Header="Action!" / > < / toolkit:ContextMenu > < / toolkit:ContextMenuService.ContextMenu > < / grid:DataGrid > < / UserControl > // Classe C# private void _grid_MouseRightButtonDown(object sender, MouseButtonEventArgs e) { IEnumerable elementsUnderMouse = VisualTreeHelper .FindElementsInHostCoordinates(e.GetPosition(null), this); DataGridRow row = elementsUnderMouse .Where(uie => uie is DataGridRow) .Cast() .FirstOrDefault(); if (row != null) _grid.SelectedItem = row.DataContext; }
Fonte:
msdn
Silverlight
Comentários
Postar um comentário
Obrigado por Participar do programero, fique a vontade para agradecer, retificar, perguntar ou sugerir.