XAML 根据子控件中TextBlock中的文本更新网格的宽度

iyfamqjs  于 2023-06-03  发布在  其他
关注(0)|答案(1)|浏览(165)

我有一个进度条的结构如下。

<DataTemplate>
        <Grid Width="300">
         <ProgressBar Maximum="1.0" Minimum="0.0" Value="{Binding Path=Value, Mode=OneWay}" />
         <TextBlock TextTrimming="CharacterEllipsis" VerticalAlignment="Center" Padding="5,0" Text="{Binding Text}"/>
        </Grid> </DataTemplate>

如果文本块中的文本被修剪或实际宽度大于网格宽度,我想更新网格宽度。
我尝试了一些事情,如传递宽度到转换器和绑定,但我无法找到一种方法。

cld4siwp

cld4siwp1#

您可以指定ColumnDefinition并将其Width设置为Auto

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto" MinWidth="300" />
    </Grid.ColumnDefinitions>
    <TextBlock TextTrimming="CharacterEllipsis"
                VerticalAlignment="Center"
                Padding="5,0"
                Text="{Binding Text}"/>
</Grid>

当TextBlock的宽度超过300像素时,列宽将进行调整。

相关问题