C++ Firemonkey:TLabel文本被截断,尽管autosize属性为true
我在Firemonkey应用程序中遇到了一个奇怪的问题。下面是我的应用程序在本地Windows 8.1计算机上运行时的屏幕截图。在蓝色面板内,是一个自动调整尺寸的标签,带有专门的长描述,以确保调整尺寸有效 一切似乎都很好,直到我在一台特定的远程机器上运行相同的应用程序。下面是在远程Windows Server 2008 R2计算机上运行的同一应用程序的屏幕截图 如您所见,蓝色面板内部的标签现在被截断,尽管其“自动大小”属性设置为true。此外,“显示日志”按钮的文本也被截断 除了验证标签的自动大小属性外,我还尝试在不同的窗口大小下运行远程机器,以查看问题是否与屏幕分辨率有关。然而,标签继续被截断C++ Firemonkey:TLabel文本被截断,尽管autosize属性为true,c++,firemonkey,c++builder-xe8,C++,Firemonkey,C++builder Xe8,我在Firemonkey应用程序中遇到了一个奇怪的问题。下面是我的应用程序在本地Windows 8.1计算机上运行时的屏幕截图。在蓝色面板内,是一个自动调整尺寸的标签,带有专门的长描述,以确保调整尺寸有效 一切似乎都很好,直到我在一台特定的远程机器上运行相同的应用程序。下面是在远程Windows Server 2008 R2计算机上运行的同一应用程序的屏幕截图 如您所见,蓝色面板内部的标签现在被截断,尽管其“自动大小”属性设置为true。此外,“显示日志”按钮的文本也被截断 除了验证标签的自
Firemonkey在不同的操作系统之间绘制不同的东西时有任何已知的问题吗?远程计算机上是否存在可能导致应用程序渲染不正确的显示设置?要缩小/解决这个问题,我还需要看其他什么吗?默认情况下,TLabel设置为WordWrap=True。尝试将其设置为false。我在移动设备上遇到了类似的问题,关闭WordWrap修复了这个问题。在XE8和Windows上修改了一系列设置后,我终于找到了解决方案。运行Windows Server 2008 R2的计算机已关闭其所有视觉增强设置,从而导致应用程序正确渲染 需要启用的特定设置是“在窗口和按钮上使用视觉样式”。似乎此设置与Aero有关,因为它在我的Windows 8.1计算机上不可用 要获得此设置,请导航到:
控制面板->系统->高级系统设置->高级选项卡->性能面板->视觉效果选项卡中的设置按钮->选中“在窗口和按钮上使用视觉样式”
启用此设置后,我可以使应用程序正确渲染。此外,通过操作此设置,我可以在其他机器上复制此问题。谢谢您的建议。在我的情况下,似乎word wrap已设置为false。是。事实证明,设置Autosize=true会自动设置WordWrap=false。我现在记得,我的问题是对齐+换行,而不是自动调整大小+换行。字体在不同的系统上呈现不同,这可能解释了按钮的文本问题。实际上,按钮在两个屏幕封盖中看起来大小不同,但我不知道这是否是屏幕封盖、不同的显示器分辨率或其他原因造成的。可能的解决方法:不使用自动调整大小,而是将其设置为固定长度,这是允许的最大长度,然后确保其左对齐。