Передача клика мыши затененному объекту

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

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

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

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

Функция 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(1:20,'PickableParts','none')

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

ax = gca;
ax.UIContextMenu = axesHoldCM

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