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

C# WPF TextBlock Run标记内的空字符串需要额外的左边距,c#,wpf,xaml,C#,Wpf,Xaml,这是我正在使用的代码,作为一个输出,我在第1行得到了一个额外的左边距,与第2行相比(虽然很少!但看起来不太好!)。我的意思是“测试”比“测试第二行”有更多的左边距。我知道这是因为为运行文本分配了空字符串值。有没有办法消除提供的额外保证金?我必须在我的代码中使用两个运行块,因为我希望它是水平定向的,第二个应该在必要时包装到下一行!(因此,将其放在stackpanel内将不起作用!)。在我的情况下,第一次运行的文本值不会总是空的。当它不是空的时候,它工作的很好。有没有办法不增加这个左边距 <G

这是我正在使用的代码,作为一个输出,我在第1行得到了一个额外的左边距,与第2行相比(虽然很少!但看起来不太好!)。我的意思是“测试”比“测试第二行”有更多的左边距。我知道这是因为为运行文本分配了空字符串值。有没有办法消除提供的额外保证金?我必须在我的代码中使用两个运行块,因为我希望它是水平定向的,第二个应该在必要时包装到下一行!(因此,将其放在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>

尝试将运行块放在同一行上

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


这是因为TextBlock将两次运行之间的新行包含为一个空格

请尝试将运行块放在同一行上

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


这是因为TextBlock在两次运行之间包含新行作为空格

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

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


在新行中添加梯段始终会留下空白。但这样做是不行的。

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

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


在新行中添加梯段始终会留下空白。但这样做是行不通的。

是的。你是对的。把它放在新的线路上是个问题。非常感谢。对你是对的。把它放在新的线路上是个问题。非常感谢。