代码之家  ›  专栏  ›  技术社区  ›  stiank81

使WPF组合框填充整个列宽

  •  11
  • stiank81  · 技术社区  · 16 年前

    我在做一个 ComboBox 拉伸以填充整个列宽 GridViewColumn . 它还应该在调整列大小时调整大小。

    在下面的示例中,我有一个 StackPanel 用一个 组合框 里面。这被设置为“拉伸”,实际上将拉伸以填充 堆栈面板 宽度。

    然后我添加了一个 ListView 一列,包含 堆栈面板 用一个 组合框 . 两个 堆栈面板 以及 组合框 设置为“拉伸”,但不设置为“拉伸”。我使用背景色来标识 堆栈面板 没有红色,除非我设置宽度或添加元素到 组合框 这样它就需要更大的宽度。

    我也试着玩 HorizontalContentAlignment 属性不成功。

    <StackPanel Height="59" Margin="45,12,38,0" VerticalAlignment="Top" Background="Green">
        <ComboBox HorizontalAlignment="Stretch" />
    </StackPanel>
    
    <ListView x:Name="MyListView" Margin="0,106,0,0">
        <ListView.View>
            <GridView>
                <GridViewColumn Header="Num" Width="70">
                    <GridViewColumn.CellTemplate>
                        <DataTemplate>
                            <StackPanel Background="red" Orientation="Horizontal" HorizontalAlignment="Stretch">
                                <ComboBox HorizontalAlignment="Stretch" />
                            </StackPanel>
                        </DataTemplate>
                    </GridViewColumn.CellTemplate>
                </GridViewColumn>
            </GridView>
        </ListView.View>
        <ListViewItem></ListViewItem>
    </ListView>
    
    1 回复  |  直到 9 年前
        1
  •  15
  •   LWChris    9 年前

    尝试设置 Style ListViewItem . 我还取下了你的堆叠面板。

    <ListView x:Name="MyListView" Margin="0,106,0,0">
        <ListView.Resources>
            <Style TargetType="ListViewItem">
                <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
            </Style>
        </ListView.Resources>
    
        <ListView.View>
            <GridView>
                <GridViewColumn Header="Num" Width="170">
                    <GridViewColumn.CellTemplate>
                        <DataTemplate>
                            <ComboBox />
                        </DataTemplate>
                    </GridViewColumn.CellTemplate>
                </GridViewColumn>
            </GridView>
        </ListView.View>
    
        <ListViewItem></ListViewItem>
    </ListView>