【问题标题】:Button alignment problem in listbox in WPFWPF列表框中的按钮对齐问题
【发布时间】:2011-02-02 06:37:36
【问题描述】:

我有一个包含这样的 itemtemplate 的列表框

<ListBox Name="lstCompany" Grid.Column="0" MinWidth="200" Grid.Row="1" HorizontalAlignment="Stretch" Margin="2,2,2,2" VerticalAlignment="Stretch" HorizontalContentAlignment="Stretch" ItemsSource="{Binding}" SelectionChanged="lstCompany_SelectionChanged">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <DockPanel>
                <Grid Name="grid1" VerticalAlignment="Top" Margin="2" HorizontalAlignment="Stretch">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto" />
                    </Grid.ColumnDefinitions>

                    <StackPanel Orientation="Vertical" HorizontalAlignment="Stretch">
                        <TextBlock Text="{Binding [0]}" FontWeight="Bold" />
                        <TextBlock Text="{Binding [1]}"></TextBlock>
                        <StackPanel.ToolTip>
                            <ToolTip>asdf</ToolTip>
                        </StackPanel.ToolTip>
                    </StackPanel>

                </Grid>
                <StackPanel VerticalAlignment="Top" HorizontalAlignment="Right" DockPanel.Dock="Right">
                    <Button Content="X" Tag="{Binding [2]}" Width="20" Click="btnRemove_Click" Name="btnRemove1" HorizontalAlignment="Right"></Button>
                </StackPanel>
            </DockPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

此列表框位于具有拆分器的网格的第一列。 现在的问题是我无法将按钮对齐到列表框项目的右侧。

【问题讨论】:

    标签: wpf listbox listboxitem


    【解决方案1】:

    这里一个Grid 就足够了。您只需要一个星形列(用于内容)和一个自动大小列(用于按钮):

    <ListBox Name="lstCompany" Grid.Column="0" MinWidth="200"    Grid.Row="1"  HorizontalAlignment="Stretch" Margin="2,2,2,2"  VerticalAlignment="Stretch" HorizontalContentAlignment="Stretch"  ItemsSource="{Binding}" SelectionChanged="lstCompany_SelectionChanged">
        <ListBox.ItemTemplate>
            <DataTemplate >
                <Grid   Name="grid1" VerticalAlignment="Top" Margin="2" HorizontalAlignment="Stretch">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*" />
                        <ColumnDefinition Width="Auto" />
                    </Grid.ColumnDefinitions>
    
                    <StackPanel Orientation="Vertical"  HorizontalAlignment="Stretch">
                        <TextBlock  Text="{Binding [0]}" FontWeight="Bold"/>
                        <TextBlock  Text="{Binding [1]}" ></TextBlock>
                        <StackPanel.ToolTip>
                            <ToolTip>asdf</ToolTip>
                        </StackPanel.ToolTip>
                    </StackPanel>
    
                    <StackPanel Grid.Column="1" VerticalAlignment="Top" HorizontalAlignment="Right">
                        <Button Content="X" Tag="{Binding [2]}"  Width="20" Click="btnRemove_Click"  Name="btnRemove1"></Button>
                    </StackPanel>
                </Grid>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>
    

    【讨论】:

      猜你喜欢
      • 2017-05-26
      • 2013-03-09
      • 1970-01-01
      • 2017-07-24
      • 1970-01-01
      • 1970-01-01
      • 2018-04-17
      • 2017-05-07
      相关资源
      最近更新 更多