Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.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
Wpf 如何使标签与网格列宽度匹配_Wpf_Listview_Grid - Fatal编程技术网

Wpf 如何使标签与网格列宽度匹配

Wpf 如何使标签与网格列宽度匹配,wpf,listview,grid,Wpf,Listview,Grid,我正在做一个简单的领导委员会。我想要的是使团队名称列标签与其所在的网格列大小相同 <ListView x:Name="TeamList" Background="#00000000" BorderBrush="#00000000"> <ListView.View> <GridView> <GridView.ColumnHeaderContainerStyle> <

我正在做一个简单的领导委员会。我想要的是使团队名称列标签与其所在的网格列大小相同

<ListView x:Name="TeamList" Background="#00000000" BorderBrush="#00000000">
    <ListView.View>
        <GridView>
            <GridView.ColumnHeaderContainerStyle>
                <Style>
                    <Setter Property="FrameworkElement.Visibility" Value="Collapsed"/>
                </Style>
            </GridView.ColumnHeaderContainerStyle>

            <GridViewColumn>
                <GridViewColumn.CellTemplate>
                    <DataTemplate>
                        <Grid>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="70"></ColumnDefinition>
                                <ColumnDefinition Width="10"></ColumnDefinition>
                                <ColumnDefinition Width="*"></ColumnDefinition>
                                <ColumnDefinition Width="10"></ColumnDefinition>

                                <!-- more columns for points -->
                            </Grid.ColumnDefinitions>

                            <Border Grid.Column="0" BorderBrush="#4Fd5f4ff" BorderThickness="1,1,1,1" CornerRadius="8,8,8,8" Background="#4Fd5f4ff">
                                <Label Width="50" 
            HorizontalAlignment="Center" HorizontalContentAlignment="Center" 
            VerticalAlignment="Center" VerticalContentAlignment="Center" FontSize="23" FontWeight="Bold" 
            Foreground="Black">#1</Label>
                            </Border>

                            <!-- This is shortened to the size of the content -->
                            <Border Grid.Column="2" BorderBrush="#7Fd5f4ff" BorderThickness="1,1,1,1" CornerRadius="8,8,8,8" Background="#7Fd5f4ff">
                                <Label  Height="40" Content="{Binding Path=Name}"
            FontSize="19" FontWeight="Bold" Padding="20 0 0 0"
            Foreground="Black" VerticalContentAlignment="Center" VerticalAlignment="Center"></Label>
                            </Border>

                            <!-- More columns for points -->
                        </Grid>
                    </DataTemplate>
                </GridViewColumn.CellTemplate>
            </GridViewColumn>
        </GridView>
    </ListView.View>
</ListView>

#1
上面列出了主题名称,但边框/标签的宽度缩短为实际内容的大小


如何使标签扩展到网格列*的大小?

问题是,
网格
仅根据其内容的大小在
网格视图中调整大小。如果为
网格打开
ShowGridLines=“True”
,您可以立即看到此问题

为避免此问题,您必须为
网格
指定宽度

我查看了VisualTree中的
GridView
使用,发现实际上没有任何元素可以拉伸以填充GridView中任何列的最大空间量,因此似乎无法使用
RelativeSource
绑定来完成这项工作

但是,如果您的
GridView
中只有一列,您可以通过使用
RelativeSource
绑定到
GridViewRowPresenter
的宽度,并使用
Converter
从值中删除X空格来计算
边距

<Grid Width="{Binding Path=ActualWidth, Converter={StaticResource MyConverter}",
    RelativeSource={RelativeSource AncestorType={x:Type GridViewRowPresenter}}"
    ... />

如何使用多个GridViewColumns而不是一列中的网格?能否将*添加到gridview列中?这就是为什么我一开始就选择了网格。我想让团队的名字填满剩余的空间,我不知道如果用户调整应用程序的大小,还有多少空间。