В настоящее время я создаю контекстное меню, которое открывается щелчком левой кнопки вместо щелчка правой кнопкой мыши, и для этого я блокирую щелчок правой кнопкой мыши, обрабатывая событие ContextMenuOpening, например,
private void PinBorder_ContextMenuOpening(object sender, System.Windows.Controls.ContextMenuEventArgs e)
{
e.Handled = true;
}
и я сам открываю контекстное меню при реакции на событие MouseButtonLeftDown, например:
private void PinBorder_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
PinBorder.ContextMenu.PlacementTarget = PinBorder;
PinBorder.ContextMenu.Placement = System.Windows.Controls.Primitives.PlacementMode.Center;
PinBorder.ContextMenu.HorizontalOffset = 0;
PinBorder.ContextMenu.VerticalOffset = 0;
PinBorder.ContextMenu.IsOpen = true;
e.Handled = true;
}
проблема здесь в том, что когда ContextMenu открывается в первый раз, все идет хорошо, но если я добавляю элемент в наблюдаемую коллекцию, привязанную к контекстному меню, и пытаюсь открыть его снова, контекстное меню обрезается до его предыдущего размера (если Я пытаюсь переместить выделение контекстного меню клавишей вверх / вниз. Я могу догадаться, что запись создана, но не вижу ее, потому что она обрезана).
Я пытался удалить материалы, запрещающие клики, и в этом случае все идет хорошо.
Я читал о такой проблеме в .net Framework 3.5, но нацелился на 4.0.
У кого-нибудь есть решение?