gpt4 book ai didi

wpf - 如何使 WPF 列表框中的列中所有项目的宽度相同?

转载 作者:行者123 更新时间:2023-12-03 07:03:46 25 4
gpt4 key购买 nike

我有一个 ListBox,其中包含 ItemTemplate,其中包含 TextBlockComboBox。问题在于 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>

最佳答案

您可以使用IsSharedSizeScope附属属性(property)。在模板定义中,将“共享尺寸组”附加到每列,如下所示:

<Grid.ColumnDefinitions>
<ColumnDefinition SharedSizeGroup="col1" />
<ColumnDefinition SharedSizeGroup="col2" />
</Grid.ColumnDefinitions>

...然后将您的 ListBox 定义为共享大小范围,以便它知道以相同的方式调整每个“大小组”的大小:

<ListBox Grid.IsSharedSizeScope="True">...</ListBox>

关于wpf - 如何使 WPF 列表框中的列中所有项目的宽度相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1102734/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com