将文本与相邻控件一起包装到下一行

时间:2013-01-17 18:15:23

标签: wpf xaml

我在包装面板中有2个文本块。其中一个文本框绑定到我的视图模型,另一个包含静态文本“:”。我想要的行为是,如果第一个文本框内容增长超过特定宽度,它将文本包装到下一行。 TextWrapping = wrap可以实现这一点。但我想要的是当文本块增长时,它会将下一个文本块与它一起推送到第二行。

例如,如果TextblockOne有文本1111111222222222并且textblock2有文本:那么我应该得到像

这样的东西

111111

222222:

而不是

1111111:

2222222

以下是我的代码:

<Grid >

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

            <Grid.RowDefinitions>
                <RowDefinition/>
                <RowDefinition/>
                <RowDefinition/>
            </Grid.RowDefinitions>

            <WrapPanel Orientation="Horizontal" Grid.Column="0">

                <TextBlock Text="11111111111111111111112222222222222222222222222222" TextWrapping="WrapWithOverflow" />       
                <TextBlock Text=":"/>
            </WrapPanel>
</Grid>

注意:我无法将:追加到viewmodel属性。可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

不确定这是否正是您想要的,但请尝试一下:

<WrapPanel Orientation="Horizontal" Grid.Column="0">
    <TextBlock  TextWrapping="Wrap">
        <Run Text="11111111111111111111112222222222222222222222222222"/>
        <Run Text=":"/>
    </TextBlock>
</WrapPanel>

这将输出:

111111
222222: