【问题标题】:How to make a TextBlock resize horizontally in a LsitBox如何使 TextBlock 在 ListBox 中水平调整大小
【发布时间】:2021-10-22 23:30:11
【问题描述】:

我有一个带有ListBox 的窗口,模板中包含TextBlocks:

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto"/>
        <ColumnDefinition/>
        <ColumnDefinition Width="Auto"/>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition/>
    </Grid.RowDefinitions>
    
   ...
    
    <ListBox x:Name="AnnotationsList" ScrollViewer.VerticalScrollBarVisibility="Visible" Grid.Row="1" Grid.ColumnSpan="3">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="1*"/>
                        <ColumnDefinition Width="20*"/>
                    </Grid.ColumnDefinitions>
                    <Label Content="{Binding DateAdded}" Grid.Column="0"/>
                    <TextBlock Text="{Binding Description}" TextWrapping="Wrap" Grid.Column="1"/>
                </Grid>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>
</Grid>

我希望TextBlock 调整大小,模板中的两个元素以 1/20 的比例一起填充宽度。

相反,TextBlock 永远不会变小,ListBox 会获得一个水平滚动条。

如果我调整窗口大小,如何使列表保持垂直滚动并确保文本变窄并换行?

【问题讨论】:

  • 您是否尝试将 Horizo​​ntalScrollBarVisibility 设置为禁用?
  • @Clemens 完美运行,我忘记了 Disabled 值与 Hidden 不同,并且处于可见性之下...想提交答案吗?

标签: wpf layout


【解决方案1】:

正如 Clemens 在 cmets 中回答的那样,HorizontalScrollBarVisibility 有一个选项 Disabled,这不仅影响可见性,而且实际上会触发子元素受到容器水平大小的限制。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    • 2011-08-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多