给出以下Xaml,为什么在100150处的RichTextBox的123未对齐?您会注意到,在同一RichTextBox中,如果我直接将文本作为TextBlock内联,则它仍与常规运行保持一致。如果我将其放在ContentPresenter内,一切都会变得古怪。
我尝试使用填充和边距,但无法使其对齐。
<Window x:Class="WpfApp1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApp1"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Window.Resources>
<DataTemplate x:Key="Test">
<TextBlock Text="{Binding}" Foreground="Red" />
</DataTemplate>
</Window.Resources>
<Grid>
<TextBlock Text="Abc;123" Margin="100,100,0,0" />
<RichTextBox>
<RichTextBox.Document>
<FlowDocument>
<Paragraph>
<Run>Abc</Run>
<Run>;</Run>
<Run>123</Run>
</Paragraph>
</FlowDocument>
</RichTextBox.Document>
</RichTextBox>
<ContentPresenter Content="Abc;123" Margin="100,120,0,0" ContentTemplate="{StaticResource Test}" />
<RichTextBox Margin="100,150,0,0">
<RichTextBox.Document>
<FlowDocument>
<Paragraph>
<InlineUIContainer>
<TextBlock Text="Abc" />
</InlineUIContainer>
<Run>;</Run>
<InlineUIContainer>
<ContentPresenter Content="123" />
</InlineUIContainer>
</Paragraph>
</FlowDocument>
</RichTextBox.Document>
</RichTextBox>
</Grid>
</Window>
答案 0 :(得分:1)
您需要将InlineUIContainer.BaselineAlignment
的{{1}}设置为“居中”。
ContentPresenter