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

.NET MAUI中Grid、Border及AbsoluteLayout属性单位咨询

.NET MAUI 属性单位疑问解答

问题1:Grid列定义中的.2*等单位是什么?

Grid的列定义代码:

<Grid  RowDefinitions="Auto,Auto,*,Auto"
       ColumnDefinitions=".2*,.2*,.5*,.1*"/>

这里的*是比例单位,用于分配Grid的剩余可用空间。.2*表示该列占据剩余空间的20%,.5*占据50%,所有带*的列会按各自的比例值分割Grid的可用宽度(行定义则对应高度)。你这里四个列的比例总和为1(.2+.2+.5+.1=1),所以它们会分别占Grid总可用宽度的20%、20%、50%、10%。

问题2:Border的StrokeThickness属性值.5的单位是什么?

Border样式代码:

<Style TargetType="Border" x:Key="Border_Style">
    <Setter Property="Margin" Value="0"/>
    <Setter Property="Stroke" Value="Gray"/>
    <Setter Property="StrokeThickness" Value=".5"/>
</Style>

StrokeThickness的单位是设备独立单位(DIU),这是.NET MAUI默认的布局单位。1个DIU会根据设备屏幕密度自动缩放,确保在不同分辨率设备上,视觉大小保持一致。.5就表示半个设备独立单位的边框厚度。

问题3:AbsoluteLayout.LayoutBounds属性值的单位是什么?

Label的AbsoluteLayout相关代码:

<Label VerticalOptions="Center" AbsoluteLayout.LayoutBounds="0,0,1,.1"
       AbsoluteLayout.LayoutFlags="HeightProportional,PositionProportional,SizeProportional" 
/>

因为LayoutFlags设置了PositionProportional和SizeProportional,所以LayoutBounds的四个值(x坐标、y坐标、宽度、高度)都是相对于父容器的比例值:

  • 0,0:Label左上角位于父容器的左上角(x占父容器宽度的0%,y占父容器高度的0%)
  • 1:宽度占父容器总宽度的100%
  • .1:高度占父容器总高度的10%

内容的提问来源于stack exchange,提问作者Preeti Jadhav

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 14:25:17