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列中?这就是为什么我一开始就选择了网格。我想让团队的名字填满剩余的空间,我不知道如果用户调整应用程序的大小,还有多少空间。