WPF更改列表框中控件的位置,因为其他控件更改大小

时间:2017-03-31 08:39:44

标签: c# wpf xaml

我有一个列表框项目的模板,目前看起来像这样:

        <ListBoxItem>
            <Grid Background="DarkOrange" MaxWidth="431">
                <TextBlock TextWrapping="WrapWithOverflow" Width="431">
                    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras nec tempus sem. 
                    Nunc lobortis magna sed odio ullamcorper sollicitudin. Etiam porttitor malesuada vestibulum. 
                    Nullam et efficitur nibh, sit amet tristique felis. 
                    Fusce vel accumsan dui. Duis aliquam nulla ac turpis vestibulum rutrum. 
                    Phasellus vitae felis at magna ultricies suscipit lacinia eu ipsum.
                </TextBlock>
            </Grid>
        </ListBoxItem>

随着文本长度的变化,Textblock的高度以及它背后的网格背景的大小也会发生变化。

如何在Textblock下面添加MediaElement控件,以便它(和背景)随着Textblock的大小一起上下移动?

1 个答案:

答案 0 :(得分:1)

您可以为Grid定义行。将第一行的Height定义为Auto,这会将行的Height调整为其内容的ActualHeight。对于第二行高度,您可以定义*,这将使其填充网格的其余部分。

    <Grid Background="DarkOrange" MaxWidth="431">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height ="*"/>
    </Grid.RowDefinitions>
    <TextBlock TextWrapping="WrapWithOverflow" Width="431">
                Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras nec tempus sem. 
                Nunc lobortis magna sed odio ullamcorper sollicitudin. Etiam porttitor malesuada vestibulum. 
                Nullam et efficitur nibh, sit amet tristique felis. 
                Fusce vel accumsan dui. Duis aliquam nulla ac turpis vestibulum rutrum. 
                Phasellus vitae felis at magna ultricies suscipit lacinia eu ipsum.
    </TextBlock>
    <MediaElement Grid.Row="1"></MediaElement>
</Grid>