阻止TextBlock调整容器WPF的大小

时间:2012-07-13 18:15:29

标签: wpf xaml wpf-controls

我有一个列表框,可根据窗口大小更改大小。对于列表框中的每个项目,它包含(通过DataTemplate):

<Grid Height="20" HorizontalAlignment="Stretch">
            <ProgressBar HorizontalAlignment="Stretch" Height="20" Value="{Binding Path=Progress, Mode=OneWay}" />
            <TextBlock Margin="7,0,0,0" Text="{Binding Path=OperationTitle}" />

        </Grid>

进度条应该扩展到列表框的大小,除非文本块中的文本比列表框长,否则它们会执行。在这种情况下,文本块和进度条变得比列表框宽,并且列表框底部会出现水平滚动条。

我希望进度条和文本块与列表框允许的一样宽,如果文本块中的文本比列表框长,则会将文本块中的文本剪切掉。

此时,进度条宽度由其容器控制在一种情况下,其内容在另一种情况下控制。我希望它始终是其容器的控制器。

谢谢!

2 个答案:

答案 0 :(得分:0)

如果我没有误解你的问题,请试试这个

 <Grid Height="20" HorizontalAlignment="Stretch">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="Auto" MaxWidth="100"/>
        </Grid.ColumnDefinitions>
        <ProgressBar HorizontalAlignment="Stretch" Height="20" Value="{Binding Path=Progress, Mode=OneWay}" Grid.Column="0" />
        <TextBlock Margin="7,0,0,0" Text="OperationTitle" Grid.Column="1" />
</Grid>

我希望这会有所帮助,不要忘记相应地设置Grid的第二列的maxWidth。

答案 1 :(得分:0)

尝试将下一个属性添加到列表框

HorizontalContentAlignment="Stretch"