You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin.Forms单元格旋转Label不截断方案及ColumnDefinition关联问题

问题根因

Xamarin.Forms 的布局计算逻辑是先计算控件未旋转时的原始尺寸,再执行旋转渲染,因此Grid会直接基于Label的横向文本原始宽度做裁切,不会参考旋转后的实际展示尺寸。

解决方案

方案1:主动适配旋转后尺寸(推荐,无溢出风险)

手动指定Label未旋转时的宽高,和旋转后的单元格尺寸做反向适配:旋转-90度后宽高会互换,因此将未旋转的Label宽度设为单元格高度(此处为100)、高度设为列宽(此处为50),同时让Label居中显示即可。

<Grid ColumnDefinitions="50" HeightRequest="100">
    <Label 
        Rotation="-90" 
        Text="LongText"
        WidthRequest="100"
        HeightRequest="50"
        HorizontalOptions="Center"
        VerticalOptions="Center" />
</Grid>

方案2:关闭Grid边界裁切(简单,适合无相邻控件场景)

直接将Grid的ClippedToBounds属性设为False,关闭单元格的内容溢出裁切,就算Label原始宽度超过列宽也不会被截断,注意如果Grid旁有其他列内容时可能出现重叠。

<Grid ColumnDefinitions="50" HeightRequest="100" ClippedToBounds="False">
    <Label Rotation="-90" Text="LongText" />
</Grid>

内容的提问来源于stack exchange,提问作者Alex Logvin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 21:36:02