UWP XAML:如何获得具有相等列宽的自动调整大小的网格
UWP XAML: How to get an auto-sized Grid with equal column widths
我的目标是拥有一个包含两列控件的网格面板(每列将包含一个垂直的 StackPanel),其中两列的宽度相同但会根据它们包含的控件自动调整大小。因此,两个列的宽度都将等于任一列中最宽的控件。
我试过这样做:
<Grid HorizontalAlignment="Center">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Button Grid.Column="0" Content="This is a wide button" HorizontalAlignment="Center" />
<Button Grid.Column="1" Content="Button" HorizontalAlignment="Center" />
</Grid>
这里的问题是列宽不相等。效果与我为列定义指定 Width="Auto"
相同。如果网格的 HorizontalAlignment 为 Stretch 而不是 Center,则使用 * 宽度只会使列宽度相等。 (除非列不再根据内容自动调整大小。)
我错过了什么吗?有没有办法根据网格单元格中的内容获得相等大小的列宽?在 UWP 应用程序中(所以 UniformGrid 之类的东西不可用)?
Windows Community Toolkit 有一个 Uniform Grid 控件,如果您在 NuGet 包中添加就可以使用。
那是因为你设置了 HorizontalAlignment
到 "Center" , Grid 不会占据整个页面只占据中心部分(它的水平 space 取决于子元素的总和,在这种情况下它加起来不会填满整个页面。
只需更改 HorizontalAlignment = "Stretch"
,使整个 space 个可用网格组件和单个网格组件占据一半 space。
<Grid HorizontalAlignment="Stretch" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Button Grid.Column="0"
Content="This is a wide button"
HorizontalAlignment="Center" />
<Button Grid.Column="1"
Content="Button"
HorizontalAlignment="Center"/>
</Grid>
图片:
Telerik RadDataGrid 控件将帮助您处理场景
Add\install Telerik.UI.Xaml.Controls.Grid 来自 Nuget,以便在您的 UWP 应用程序中使用 RadDataGrid
我的目标是拥有一个包含两列控件的网格面板(每列将包含一个垂直的 StackPanel),其中两列的宽度相同但会根据它们包含的控件自动调整大小。因此,两个列的宽度都将等于任一列中最宽的控件。
我试过这样做:
<Grid HorizontalAlignment="Center">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Button Grid.Column="0" Content="This is a wide button" HorizontalAlignment="Center" />
<Button Grid.Column="1" Content="Button" HorizontalAlignment="Center" />
</Grid>
这里的问题是列宽不相等。效果与我为列定义指定 Width="Auto"
相同。如果网格的 HorizontalAlignment 为 Stretch 而不是 Center,则使用 * 宽度只会使列宽度相等。 (除非列不再根据内容自动调整大小。)
我错过了什么吗?有没有办法根据网格单元格中的内容获得相等大小的列宽?在 UWP 应用程序中(所以 UniformGrid 之类的东西不可用)?
Windows Community Toolkit 有一个 Uniform Grid 控件,如果您在 NuGet 包中添加就可以使用。
那是因为你设置了 HorizontalAlignment
到 "Center" , Grid 不会占据整个页面只占据中心部分(它的水平 space 取决于子元素的总和,在这种情况下它加起来不会填满整个页面。
只需更改 HorizontalAlignment = "Stretch"
,使整个 space 个可用网格组件和单个网格组件占据一半 space。
<Grid HorizontalAlignment="Stretch" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Button Grid.Column="0"
Content="This is a wide button"
HorizontalAlignment="Center" />
<Button Grid.Column="1"
Content="Button"
HorizontalAlignment="Center"/>
</Grid>
图片:
Telerik RadDataGrid 控件将帮助您处理场景
Add\install Telerik.UI.Xaml.Controls.Grid 来自 Nuget,以便在您的 UWP 应用程序中使用 RadDataGrid