我正在尝试更改其高度和宽度时自动调整VST的大小。我在其他放置的VCL组件上没有这个问题,其中一些组件具有TImage之类的“拉伸”属性,可让它们自动调整。 VST仍然很固执,并保持nodeHeights和Column宽度。我已经看到Header-> hoAutoResize,hoColumnResize。在这种情况下,AutoSizeIndex -1并不是那么有用,因为我需要每一列都按比例缩小。我认为这就是为什么这些都不做的原因。将AutoSizeIndex更改为我的最后一列(3,因为我有4列),并且将hoAutoResize = True;仍然不影响我的列宽。 hoColumnResize是允许用户调整列大小的设置,因此也不能算是运气我看过TreeOptions-> AutoOptions-> toAutoChangeScale和toAutoSpanColumns。我发现toAutoSpanColumns在我的情况下适得其反,所以关闭了。我的字体大小正在调整。我已经找到Tree.Scaleby,但是我无法使其正常运行,并且在我拥有的官方.pdf文档中没有记录。所有4列的minWidth为10,因此没有问题所有这四个都具有coEnabled,coVisible,coResizable:= True和coFixed,coSmartResize:= False我想我只是碰到了错误的设置组合或其他东西。任何提示都会很棒,谢谢。 最佳答案 从您的帖子中了解到,您想在TVirtualStringTree宽度更改时自动按比例自动调整所有列的宽度。如果您希望行高也会发生这种情况,则可以相应地应用以下内容。规范性的列宽没有设置,但是在OnResize的TVirtualStringTree事件中很容易实现:procedure TForm1.VSTResize(Sender: TObject);begin VST.Header.Columns[0].Width := MulDiv(VST.Width, 50, 100); VST.Header.Columns[1].Width := MulDiv(VST.Width, 30, 100); VST.Header.Columns[2].Width := MulDiv(VST.Width, 20, 100);end;在上面,列保持为组件宽度的50%,30%和20%。关于delphi - TVirtualStringTree Scale通过拉伸(stretch),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43612704/ 10-11 15:53