Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
uwpxaml:如何获得具有相等列宽的自动调整大小的网格_Xaml_Uwp_Uwp Xaml - Fatal编程技术网

uwpxaml:如何获得具有相等列宽的自动调整大小的网格

uwpxaml:如何获得具有相等列宽的自动调整大小的网格,xaml,uwp,uwp-xaml,Xaml,Uwp,Uwp Xaml,我的目标是使网格面板具有两列控件(每列将包含一个垂直StackPanel),其中两列的宽度相同,但根据它们包含的控件自动调整大小。因此,两个列宽都将等于任一列中最宽的控件 我试过这样做: <Grid HorizontalAlignment="Center"> <Grid.ColumnDefinitions> <ColumnDefinition Width="*" /> <ColumnDefinition Width="*" />

我的目标是使网格面板具有两列控件(每列将包含一个垂直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”
相同。如果栅格的水平对齐方式为“拉伸”,而不是“中心”,则使用*宽度仅会使列的宽度相等。(除此之外,列不再根据内容自动调整大小。)


我错过什么了吗?是否有一种方法可以根据网格单元中的内容获得大小相等的列宽?在UWP应用程序中(因此UniformGrid之类的东西不可用)?

有一个统一的网格控件,如果您添加到NuGet包中,可以使用该控件。

这是因为您已将
水平对齐设置为“中心”,网格不会占据整个页面,而只占据中心部分(它的水平空间取决于子元素的总和,在这种情况下,它加起来不会填满整个页面

只需更改
HorizontalAlignment=“Stretch”
,使整个可用空间和单个栅格组件占据一半空间

<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控件将帮助您解决方案


从Nuget添加\安装Telerik.UI.Xaml.Controls.Grid,以便在UWP应用程序中使用RadDataGrid

我特别说过,我希望列的大小与内容相符,而不是占用整个空间。