我可以設置PlacementTarget
爲ContextMenu
。它始終打開(通過Shift + F10)在列表框的中心。設置ContextMenu通過鍵盤打開的PlacementTarget WPF
我想:
private void listBox_PreviewKeyDown(object sender, System.Windows.Input.KeyEventArgs e)
{
if (e.KeyboardDevice.Modifiers == ModifierKeys.Shift &&
(e.Key == Key.F10 || e.SystemKey == Key.F10)){
var listBox = sender as System.Windows.Controls.ListBox;
listBox.ContextMenu.PlacementTarget = listBox.ItemContainerGenerator.ContainerFromItem(listBox.SelectedItem) as ListBoxItem;
}
}
和
private void listBox_ContextMenuOpening(object sender, ContextMenuEventArgs e)
{
var listBox = sender as System.Windows.Controls.ListBox;
listBox.ContextMenu.PlacementTarget = listBox.ItemContainerGenerator.ContainerFromItem(listBox.SelectedItem) as ListBoxItem;
}
但它仍然不能按預期工作。 (我期望它顯示在選定的itemlistbox的中心)
有什麼建議嗎?
你能告訴更確切的是什麼問題嗎?有什麼異常?或者只是ContextMenu仍然顯示在中心? – 2014-10-30 08:10:04
仍然顯示在列表框的中心,但我期望在選定listboxitem的中心 – maskalek 2014-10-30 08:20:29