这是我正在使用的代码,作为输出,我在第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>
答案 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>
在新行中添加“运行”始终会占用空白区域。但是以这种方式放置它们不会。