Передайте клик мыши к скрытому объекту

В этом примере показано, как передать клики мыши скрытому объекту.

Установите PickableParts свойство графического объекта, для none чтобы предотвратить захват объекта кликом мыши. Этот пример:

  • Определяет контекстное меню для осей, которые вызывают hold со значениями on или off

  • Создает графики, в которых ни один из объектов данных не может захватывать клики мыши, позволяя всем щелчкам правой кнопкой мыши переходить к осям и вызывать контекстное меню.

The axesHoldCM функция задает контекстное меню и возвращает его указатель.

function cmHandle = axesHoldCM
   cmHandle = uicontextmenu;
   uimenu(cmHandle,'Label','hold on','Callback',@holdOn);
   uimenu(cmHandle,'Label','hold off','Callback',@holdOff);
end
function holdOn(~,~)
   fig = gcbf;
   ax = fig.CurrentAxes;
   hold(ax,'on')
end
function holdOff(~,~)
   fig = gcbf;
   ax = fig.CurrentAxes;
   hold(ax,'off')
end

Создайте штриховой график и установите PickableParts свойство объектов Bar:

bar(1:20,'PickableParts','none')

Создайте контекстное меню для текущей системы координат:

ax = gca;
ax.ContextMenu = axesHoldCM

Щелкните правой кнопкой мыши по полосам в графике и отобразите контекстное меню осей: