如何使WPF数据模板填充列表框的整个宽度? [英] How do I make a WPF data template fill the entire width of the listbox?
本文介绍了如何使WPF数据模板填充列表框的整个宽度?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在WPF中有一个ListBox
DataTemplate
.我希望一个项目紧靠ListBox
的左侧,而另一个项目紧靠ListBox
的右侧,但是我不知道该怎么做.
I have a ListBox
DataTemplate
in WPF. I want one item to be tight against the left side of the ListBox
and another item to be tight against the right side, but I can't figure out how to do this.
到目前为止,我有一个带有三列的Grid
,左边和右边都有内容,中间是一个占位符,其宽度设置为"*".我要去哪里错了?
So far I have a Grid
with three columns, the left and right ones have content and the center is a placeholder with it's width set to "*". Where am I going wrong?
这是代码:
<DataTemplate x:Key="SmallCustomerListItem">
<Grid HorizontalAlignment="Stretch">
<Grid.RowDefinitions>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition Width="*"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<WrapPanel HorizontalAlignment="Stretch" Margin="0">
<!--Some content here-->
<TextBlock Text="{Binding Path=LastName}" TextWrapping="Wrap" FontSize="24"/>
<TextBlock Text=", " TextWrapping="Wrap" FontSize="24"/>
<TextBlock Text="{Binding Path=FirstName}" TextWrapping="Wrap" FontSize="24"/>
</WrapPanel>
<ListBox ItemsSource="{Binding Path=PhoneNumbers}" Grid.Column="2" d:DesignWidth="100" d:DesignHeight="50"
Margin="8,0" Background="Transparent" BorderBrush="Transparent" IsHitTestVisible="False" HorizontalAlignment="Stretch"/>
</Grid>
</DataTemplate>
推荐答案
我还必须设置:
HorizontalContentAlignment="Stretch"
在包含的ListBox
上.
这篇关于如何使WPF数据模板填充列表框的整个宽度?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文