使用 ItemsControl 时是否有东西可以拉伸以填充所有剩余空间

问题描述 投票:0回答:1

我制作了一个简单的自定义控件来包含一些参数,并将所有这些控件放入 ItemsControl 中,如下所示。 我已尽全力拉伸项目以填充所有剩余空间,但 VerticalContentAlignment 无法正常工作,也包含 UniformGrid 中的项目。

除了一个简单的显示控件之外什么都没有,但我的项目中有很多这样的控件,我不想使用很多 RowDefinition 有没有简单的方法可以拉伸?

<Grid Background="{StaticResource BackgroundLightBrush}">
    <Grid.RowDefinitions>
        <RowDefinition Height="auto" />
        <RowDefinition Height="auto" />
        <RowDefinition Height="1*" />
    </Grid.RowDefinitions>

    <!--  Title  -->
    <Grid Height="56">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="auto" />
            <ColumnDefinition Width="*" />
            <ColumnDefinition Width="auto" />
        </Grid.ColumnDefinitions>

        <TextBlock
            Margin="20,15"
            VerticalAlignment="Center"
            FontSize="{StaticResource FontForTitle}"
            Text="{Binding Title}" />
        <Button
            Grid.Column="2"
            Width="{Binding ActualHeight, RelativeSource={RelativeSource self}}"
            Height="{Binding ActualHeight, RelativeSource={RelativeSource AncestorType=StackPanel}}"
            Margin="7"
            Style="{StaticResource MenuButton}"
            Visibility="{Binding ButtonVisibility, Converter={local:BooleanToVisibilityConverter}}" />
    </Grid>

    <!--  Status Bars  -->
    <Border
        Grid.Row="1"
        Height="{Binding StatusBarsHeight}"
        Background="{Binding Status,Converter={local:LightGrayToGreenByBooleanConverter}}"
        />

    <!--  Parameter  -->
    <ItemsControl Grid.Row="2" ItemsSource="{Binding Items}" >
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <local:DisplayLabel />
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>

</Grid>
wpf itemscontrol
1个回答
0
投票

尝试:

<ItemsControl Grid.Row="2" ItemsSource="{Binding Items}" >
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <local:DisplayLabel />
        </DataTemplate>
    </ItemsControl.ItemTemplate>
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <UniformGrid Columns="1"/>
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
</ItemsControl>
© www.soinside.com 2019 - 2024. All rights reserved.