Clear Filters
Clear Filters

Missing context menu for "axes" contained in "uifigure" parent

7 views (last 30 days)
Hello,
I would like to enable the default context menu functionality for axes objects inside a uifigure parent (or a panel within a uifigure).
For an axes within a figure object, the context menu appears when the user has selected one of the axes toolbar buttons and subsequently right clicks on the axes. However, for an axes within a uifigure object, the context menu does not appear. See code below for a guided example of this behavior difference.
Is it possible to enable this default context menu functionality for an axes within a uifigure hierarchy?
% Compare default context menu functionality with Axes objects created in a
% figure and uifigure parent.
% Figure parent
h = figure;
ax = axes(h);
title(ax, 'This is a ''figure'' with an ''axes'' child')
disp('A figure has been created with an axes child.')
disp('Select a toolbar interaction button, such as the Zoom button.')
disp('Right click on the axes and observe the context menu which appears.')
input('Press enter to continue');
disp('---')
% UIFigure parent
hUI = uifigure;
axUI = axes(hUI);
title(axUI, 'This is a ''uifigure'' with an ''axes'' child')
disp('A uifigure has been created with an axes child.')
disp('Select a toolbar interaction button, such as the Zoom button.')
disp('Note that no context menu appears.')
disp('How can one enable the default context menus for axes contained in a uifigure?')
input('Press enter to close figures');
delete(h)
delete(hUI)
  1 Comment
Luc
Luc on 15 Mar 2021
I had the same problem and noticed that this will do the trick:
app.UIAxesZoom=zoom(app.UIAxes);
setAllowAxesZoom(app.UIAxesZoom,app.UIAxes,1);

Sign in to comment.

Answers (0)

Categories

Find more on Interactive Control and Callbacks in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!