Vous pouvez utiliser la fonction de rétroaction ci-dessous pour obtenir ce que vous voulez:
set(f,'SizeChangedFcn',@(src, callbackdata) onSizeChanged(src, F3, F4));
function onSizeChanged(src, F3, F4)
pos = src.Position;
scale = (pos(3)/F3 + pos(4)/F4)/2; % estimate the desired scale factor
% scale = min(pos(3)/F3, pos(4)/F4); % alternative
pos(3) = scale*F3;
pos(4) = scale*F4;
src.Position = pos;
end
Une alternative peut être d'utiliser pbaspect
, mais cela va changer le rapport d'aspect de l'intrigue, pas la fenêtre elle-même.
Voulez-vous conserver un format d'image identique à celui de la fenêtre graphique dans laquelle il est redimensionné? – gnovice
Non, la fenêtre graphique elle-même. Ceci est une figure de l'interface graphique. – hello123
Voulez-vous dire quand la figure est redimensionnée _dans le programme_ ou quand elle est manuellement redimensionnée par l'utilisateur? –