【问题标题】:Stop TextBlock from resizing container WPF停止 TextBlock 调整容器 WPF 的大小
【发布时间】:2012-07-13 15:11:23
【问题描述】:

我有一个根据窗口大小改变大小的列表框。对于列表框中的每个项目,它包含(通过 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>

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

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

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

谢谢!

【问题讨论】:

  • 你有没有尝试将进度条和文本块的宽度绑定到列表框的宽度?

标签: wpf xaml wpf-controls


【解决方案1】:

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

 <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>

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

【讨论】:

    【解决方案2】:

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

    HorizontalContentAlignment="Stretch"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多