WPF TextBlock Run标记内的空字符串需要额外的左边距

时间:2016-05-11 12:55:08

标签: c# wpf xaml

这是我正在使用的代码,作为输出,我在第1行获得了额外的左边距与第2行相比(虽然很少!但看起来并不好!)。我是说"测试"与"测试第二行"相比,左边距更多。我知道这是因为分配给运行文本的空字符串值。有没有办法删除这个额外的保证金?我必须在我的代码中使用两个Run块,因为我希望它在水平方向上定向,第二个应该在必要时被包装到下一行!(因此将它放在stackpanel中将无效!)。在我的情况下,第一次运行文本值不会为空。当它不是空的时候工作正常。有没有办法不增加这个额外的左边距?

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition />
        <RowDefinition />
    </Grid.RowDefinitions>
    <TextBlock Grid.Row="0">
        <Run Text="" />
        <Run Text="Test" />
    </TextBlock>
    <TextBlock Grid.Row="1" Text="Test 2nd line" />
</Grid>

2 个答案:

答案 0 :(得分:2)

尝试将Run块放在同一行

<TextBlock Grid.Row="0">
    <Run Text="" /><Run Text="Test" />
</TextBlock>

这是因为TextBlock包含了作为空格的运行之间的新行

答案 1 :(得分:0)

这是一个XAML技巧,此代码将完全按照您的意愿工作。

<TextBlock Grid.Row="0">
    <Run Text="" /><Run Text="Test" />
</TextBlock>

在新行中添加“运行”始终会占用空白区域。但是以这种方式放置它们不会。