Курсор фактически перемещается при отпускании кнопки мыши, поэтому вы хотите пометить событие MouseRightButtonUp как обработанное.Вы можете переопределить OnMouseRightButtonUp :
protected override void OnMouseRightButtonUp(MouseButtonEventArgs e)
{
base.OnMouseRightButtonUp(e);
e.Handled = true;
}
Или вы можете прикрепить обработчик класса к событию MouseRightButtonUp, чтобы пометить его как обработанный:
static MyComboBox()
{
EventManager.RegisterClassHandler(
typeof(MyComboBox),
MouseRightButtonUpEvent,
new MouseButtonEventHandler(MyComboBox_MouseRightButtonUp));
}
private static void MyComboBox_MouseRightButtonUp(
object sender, MouseButtonEventArgs e)
{
e.Handled = true;
}
Это также предотвратитконтекстное меню создано без необходимости явно устанавливать его на нуль.