get zoom status of a UIAxes

For a figure axes, I can find out whether zoom is active or not by doing:
figure
plot(1:10)
h = zoom(gca);
get(h,'Enable') %off
zoom(gca,'on') %start zoom mode
get(h,'Enable') %on
but the equivalent with a UIAxes doesn't seem to work:
>> h = zoom(app.UIAxes)
Error using matlab.ui.control.UIAxes/zoom
Too many output arguments.
How can I find out whether zoom is active on my UIAxes?

Answers (1)

In the case of "UIAxes", we cannot use "zoom(app.UIAxes)" to get the zoom object like we can with regular axes. This will result in an error because "UIAxes" does not support that syntax.
There is no direct way to check if zoom is currently enabled on a "UIAxes". A common workaround is to manage the zoom state manually using a variable.
Here's an example code:
% Enable zoom
zoom(app.UIFigure, 'on');
app.ZoomEnabled = true;
% Later check
if app.ZoomEnabled
disp('Zoom is on');
else
disp('Zoom is off');
end
Hope this helps!

Categories

Asked:

on 27 Jul 2018

Answered:

on 29 May 2025

Community Treasure Hunt

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

Start Hunting!