0

我有以下标记:

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition Width="Auto" />
    </Grid.ColumnDefinitions>

    <TextBlock x:Name="Col1" Text="Text1" Grid.Column="0" />
    <TextBlock x:Name="Col2" Text="Text12" Grid.Column="1" />
</Grid>

如果我在里面放了很多文字,Col1就会超出屏幕,Col2根本看不到。我想改变这种行为,如果文本太多,Col1那么它的宽度就会减小,这样Col2就可以完全看到了。

另一方面,如果我将标记更改为此:

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*" />
        <ColumnDefinition Width="Auto" />
    </Grid.ColumnDefinitions>

    <TextBlock x:Name="Col1" Text="Text1" Grid.Column="0" />
    <TextBlock x:Name="Col2" Text="Text12" Grid.Column="1" />
</Grid>

以下是说明我希望 TextBlocks 如何表现的图像:

两个 TextBlock 的组合宽度小于屏幕,因此它们一个接一个。 在此处输入图像描述

第一个文本块很长,因此被裁剪以在屏幕内包含第二个文本块。 在此处输入图像描述

然后,当有很多文本时一切正常,但是当文本量很小时,和Col1之间存在间隙。我应该怎么做才能在这两种情况下获得所需的行为?Col1Col2

4

1 回答 1

1

修改;

<Grid HorizontalAlignment="Left">
    <Grid.ColumnDefinitions>
        <ColumnDefinition />
        <ColumnDefinition Width="Auto"/>
    </Grid.ColumnDefinitions>    
    <TextBlock x:Name="Col1" Text="Text1" />
    <TextBlock x:Name="Col2" Text="Text12" Grid.Column="1" TextWrapping="Wrap" />
</Grid>

然后请记住限制它们的整体大小,这将像另一个一样放置在父面板容器中Grid

于 2013-01-17T15:19:53.663 回答