为了账号安全,请及时绑定邮箱和手机立即绑定

如何让ListBox ItemTemplate水平拉伸ListBox的整个宽度?

如何让ListBox ItemTemplate水平拉伸ListBox的整个宽度?

幕布斯6054654 2019-09-19 09:23:49
我希望ListItems以其橙色背景扩展为Listbox的整个宽度。目前它们只与FirstName + LastName一样宽。我已将每个元素设置为:HorizontalAlignment =“Stretch”。我希望ListboxItems的背景随着用户拉伸列表框而扩展,因此我不想输入绝对值。我需要做什么才能使ListBoxItems的背景颜色填充ListBox的宽度?<Window x:Class="TestListBoxSelectedItemStyle.Window1"     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"     xmlns:local="clr-namespace:TestListBoxSelectedItemStyle"     Title="Window1" Height="300" Width="300">     <Window.Resources>         <local:CustomerViewModel x:Key="TheDataProvider"/>         <DataTemplate x:Key="CustomerItemTemplate">             <Border CornerRadius="5" Background="Orange" HorizontalAlignment="Stretch" Padding="5" Margin="3">                 <StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch" Width="Auto">                     <TextBlock HorizontalAlignment="Stretch">                     <TextBlock.Text>                         <MultiBinding StringFormat="{}{0} {1}">                             <Binding Path="FirstName"/>                             <Binding Path="LastName"/>                         </MultiBinding>                     </TextBlock.Text>                     </TextBlock>                 </StackPanel>             </Border>         </DataTemplate>     </Window.Resources>     <Grid>         <ListBox ItemsSource="{Binding Path=GetAllCustomers, Source={StaticResource TheDataProvider}}"                  ItemTemplate="{StaticResource CustomerItemTemplate}"/>     </Grid></Window>
查看完整描述

3 回答

?
慕容森

TA贡献1853条经验 获得超18个赞

我确定这是重复的,但我找不到同样答案的问题。

添加HorizontalContentAlignment="Stretch"到ListBox。这应该够了吧。只需要小心自动完成,因为它很容易HorizontalAlignment被误解。


查看完整回答
反对 回复 2019-09-19
?
FFIVE

TA贡献1797条经验 获得超6个赞

我在这里找到了另一个解决方案,因为我遇到了两个帖子......

这是来自Myles的回答:

<ListBox.ItemContainerStyle> 
    <Style TargetType="ListBoxItem"> 
        <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter> 
    </Style> </ListBox.ItemContainerStyle>

这对我有用。


查看完整回答
反对 回复 2019-09-19
?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

如果你的物品比那些物品ListBox,那么这里的其他答案也无济于事:物品中的物品ItemTemplate仍然宽于ListBox

对我有用的修复是禁用水平滚动条,显然,它还告诉容器所有这些项目只保留与列表框一样宽。

因此,获得与列表框一样宽的ListBox项目的组合修复,无论它们是否更小并且需要拉伸,还是更宽并需要包装,如下所示:

<ListBox HorizontalContentAlignment="Stretch" 
         ScrollViewer.HorizontalScrollBarVisibility="Disabled">


查看完整回答
反对 回复 2019-09-19
  • 3 回答
  • 0 关注
  • 871 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信