Jul*_*lin 42 wpf listbox itemtemplate width
我有一个ListBox带ItemTemplate组成的TextBlock和ComboBox.问题是TextBlock每个项目内部文本的宽度不同,ComboBox控件未对齐.
如何TextBlock在模板中设置所有项目的宽度相同,哪个是最宽的?
这是我的xaml:
<ListBox MinHeight="100" ItemsSource="{Binding Trainees}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Margin="1">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock VerticalAlignment="Center" Grid.Column="0">
<TextBlock.Text>
<MultiBinding StringFormat="{}{0}, {1}">
<Binding Path="LastName" />
<Binding Path="FirstName" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
<ComboBox HorizontalAlignment="Left" Grid.Column="1"
ItemsSource="{Binding Source={StaticResource Functions}}" SelectedValue="{Binding Path=Function}"
MinWidth="100" />
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Run Code Online (Sandbox Code Playgroud)
Mat*_*ton 66
您可以使用附加的IsSharedSizeScope属性.在模板定义中,将"共享大小组"附加到每个列,如下所示:
<Grid.ColumnDefinitions>
<ColumnDefinition SharedSizeGroup="col1" />
<ColumnDefinition SharedSizeGroup="col2" />
</Grid.ColumnDefinitions>
Run Code Online (Sandbox Code Playgroud)
...然后将ListBox定义为共享大小范围,以便它知道以相同的方式调整每个"大小组"的大小:
<ListBox Grid.IsSharedSizeScope="True">...</ListBox>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17418 次 |
| 最近记录: |