Can a UI Figure be centered before displaying?

I am using movegui(_______,'center') to center my UI figure. While this works, I'd prefer to not have the UI showing at all until the figure is centered. Is this possible?

 Accepted Answer

Try this:
h = figure; % Create a figure.
h.Visible = 'off'; % Hide it immediately.
h.Units = 'normalized';
% Get original width and height.
originalSize = h.Position
width = originalSize(3)
height = originalSize(4)
% Reassign the size (optional - only if you want to);
width = .5;
height = 0.3; % Whatever you want.
% Get the left and bottom coordinates so we can reposition to there.
xLeft = 0.5 - width/2;
yBottom = 0.5 - height/2;
% Reposition the figure. Here is where it actually gets moved and (optionally) resized.
h.Position = [xLeft, yBottom, width, height]
h.Visible = 'on'; % Now show it.

1 Comment

Thanks! Even simpler:
h.Visible = 'off'; % hide it immediately
movegui(h,'center') % center
h.Visible = 'on'; % show it

Sign in to comment.

More Answers (0)

Categories

Community Treasure Hunt

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

Start Hunting!