我希望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
被误解。
qq_花开花谢_0
TA贡献1835条经验 获得超7个赞
如果你的物品比那些物品宽ListBox
,那么这里的其他答案也无济于事:物品中的物品ItemTemplate
仍然宽于ListBox
。
对我有用的修复是禁用水平滚动条,显然,它还告诉容器所有这些项目只保留与列表框一样宽。
因此,获得与列表框一样宽的ListBox项目的组合修复,无论它们是否更小并且需要拉伸,还是更宽并需要包装,如下所示:
<ListBox HorizontalContentAlignment="Stretch" ScrollViewer.HorizontalScrollBarVisibility="Disabled">
添加回答
举报
0/150
提交
取消