任务:使InlineUIContainer的文本内容与外部文本内联。
InlineUIContainer内容的标准行为是底边与外部文本内联。
可以使用RenderTransform移动InlineUIContainer的位置,但必须为每种字体类型和大小选择Y的值 - 这不是一种完美的方式。
<RichTextBox>
<Paragraph>
LLL
<InlineUIContainer>
<Border Background="LightGoldenrodYellow">
<TextBlock Text="LLL"/>
</Border>
</InlineUIContainer>
LLL
</Paragraph>
<Paragraph>
LLL
<InlineUIContainer>
<Border Background="LightGoldenrodYellow">
<Border.RenderTransform>
<TranslateTransform Y="5" />
</Border.RenderTransform>
<TextBlock Text="LLL"/>
</Border>
</InlineUIContainer>
LLL
</Paragraph>
</RichTextBox>
如何将InlineUIContainer内容中的文本与RichTextBox中的外部文本对齐,而不管字体类型和大小如何?
在WPF中,属性BaselineAlignment =“Center”works fine。
但Silverlight看起来很幸运。
答案 0 :(得分:2)
我完美地对待了(你可以从中做出自定义控制):
首先将您的对象包装到Canvas ...
<Paragraph>LLL
<InlineUIContainer>
<Canvas x:Name="c" LayoutUpdated="c_LayoutUpdated">
<Border Background="LightGoldenrodYellow">
<TextBlock x:Name="t" FontSize="32" Text="LLL"/>
</Border>
</Canvas>
</InlineUIContainer> LLL
</Paragraph>
将LayoutUpdated事件处理程序添加到Canvas
private void c_LayoutUpdated(object sender, EventArgs e)
{
c.Width = t.DesiredSize.Width;
c.Height = (t.DesiredSize.Height / 1.3d);
}
按F5后你必须看到一个奇迹:)
PS:现在文字按照你的意愿行事......不管你使用什么FontStyle和FontSize ......
答案 1 :(得分:0)
尝试使用Border.Margin
属性..(尝试将其设置为“0,-5,0,-5”或其他一些数字)