如何为WPF网格中的所有元素设置特定的高度/宽度?

时间:2012-11-24 16:41:24

标签: c# wpf

我有一个自定义ListBox,其中每个项目都有一个Grid定义,我在哪里显示框。我可以使用SharedSizeGroup属性将宽度设置为相同的长度。但是,如何在父ListBox元素中为所有这些项共享此属性?

我尝试在ListBox元素上设置属性,但这不起作用。

<ListBox
    ItemContainerStyle="{StaticResource MyStyle}"...>

<Style x:Key="MyStyle" TargetType="ListBoxItem">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="ListBoxItem">
                <Grid Grid.IsSharedSizeScope="True">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto" SharedSizeGroup="Box" />
                        <ColumnDefinition Width="Auto" SharedSizeGroup="Box" />
                        <ColumnDefinition Width="Auto" SharedSizeGroup="Box" />
                    </Grid.ColumnDefinitions>
                    <Border Grid.Column="0">
                        <TextBlock Text="{Binding PropertyA}" />
                    </Border>
                    <Border Grid.Column="1">
                        <TextBlock Text="{Binding PropertyB}" />
                    </Border>
                    <Border Grid.Column="2">
                        <TextBlock Text="{Binding PropertyC}" />
                    </Border>
                </Grid>

1 个答案:

答案 0 :(得分:2)

而不是在Grid.IsSharedSizeScope="True"上设置属性Grid,而不是像这样在Listbox上设置它 -

 <ListBox Grid.IsSharedSizeScope="True">

并将其从Grid删除。

这会使all成为listboxItemsshare the same size而非单个项目。