Я знаю оригинальные списки вопросов Cygwin, но вот решение для CentOS:
curl http://curl.haxx.se/ca/cacert.pem -o /etc/pki/tls/certs/ca-bundle.crt
Источник: http://eric.lubow.org/2011/security/fixing-centos -root-сертификат-орган-вопросы /
Ключ устанавливает событие PreviewMouseRightButtonDown в правильном месте. Как вы заметите, даже без ContextMenu щелчок правой кнопкой мыши по ListViewItem выберет этот элемент, и поэтому нам нужно установить событие для каждого элемента, а не для ListView.
<ListView>
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}">
<EventSetter Event="PreviewMouseRightButtonDown"
Handler="OnListViewItemPreviewMouseRightButtonDown" />
</Style>
</ListView.ItemContainerStyle>
<ListView.ContextMenu>
<ContextMenu>
<MenuItem Header="Menu Item">Item 1</MenuItem>
<MenuItem Header="Menu Item">Item 2</MenuItem>
</ContextMenu>
</ListView.ContextMenu>
<ListViewItem>Item</ListViewItem>
<ListViewItem>Item</ListViewItem>
<ListViewItem>Item</ListViewItem>
<ListViewItem>Item</ListViewItem>
<ListViewItem>Item</ListViewItem>
<ListViewItem>Item</ListViewItem>
</ListView>
private void OnListViewItemPreviewMouseRightButtonDown(object sender, MouseButtonEventArgs e)
{
Trace.WriteLine("Preview MouseRightButtonDown");
e.Handled = true;
}
Поскольку события предварительного просмотра туннелируются это заблокирует возникновение RightMouseButtonDown в ListViewItems, предотвращая их выбор, но не предотвратит RightMouseButtonDown в ListView и, таким образом, позволит открыть ContextMenu.
эта ссылка также кажется полезной:
http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/e7f213e3-d8c0-4d13-8c39-51b214715c8a