有没有办法在不改变 x 和 y 位置的情况下改变整个图形上文本字段的高度?
要改变我们必须使用位置,这需要改变坐标。我只想改变高度,而不改变 x 和 y。
只需存储当前的 x 和 y,然后在您的set
调用中使用它们,如下所示:
old_pos = get(text_field_handle,'Position');
set(text_field_handle,'Position',[old_pos(1:2),new_width,new_height]);
好吧,你可以改变FontSize
属性,这不会改变坐标,但会增加宽度和高度。有关更多详细信息,请参阅文档中的文本属性。
我假设您正在使用uicontrol('style','text')
.
从您拥有的uicontrol 属性中:
位置
position rectangle *Size and location of uicontrol*. The rectangle defined by this property specifies the size and location of the control within the parent figure window, uipanel, or uibuttongroup. Specify Position as: [left bottom width height] where left and bottom define the distance from the lower-left corner of the container to the lower-left corner of the rectangle. width and height are the dimensions of the uicontrol rectangle.
然后,您可以更改width
并height
保留原始的left
and bottom
。
可以设置对象的Margin
属性text
来增加对象的高度而不改变字体大小,但这会影响文本对象的高度和宽度。我不确定使高度小于 Matlab 认为的文本高度意味着什么,所以我假设您有兴趣增加大小。
如果您愿意使用 LaTeX 解释器,增加文本对象的高度相对容易。你只需要添加一个你想要的任何高度的“空”框:
text(0.5, 0.25, 'Hello World\parbox{\textwidth}{\vspace{1in}}', 'Interpreter', 'LaTeX', 'BackgroundColor',[1, 0, 0]);
这不会将高度恰好增加 1 英寸,而是更像是 1 英寸减去基线跳跃。确定显示单位的实际高度增加会增加更多问题。您也许可以使用 unicode 字符更改高度,从而跳过 LaTeX 解释器,但我不知道如何。