银光。如何将 InlineUIContainer 内容中的文本与 RichTextBox 中的外部文本对齐
任务:使 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" 工作正常。
但 Silverlight 似乎很幸运有这个功能。
The task: Make the text content of the InlineUIContainer to be inline with the outer text.
The standard behaviour of the InlineUIContainer content is when the bottom edge is inline with the outer text.
It is possible to shift the position of InlineUIContainer with RenderTransform, but the value of Y has to be chosen for each font type and size - not a perfect way.
<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>
How to align the text in the InlineUIContainer content with the outer text in RichTextBox regardless of font type and size?
In WPF the property BaselineAlignment="Center" works fine.
But Silverlight seems lucking that functionality.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我罚款了我完美的方法(你可以从中制作一个自定义控件):
首先将你的对象包装到画布中...
并将 LayoutUpdated 事件处理程序添加到画布
按 F5 后,你必须看到奇迹:)
PS:现在文本按照您的意愿进行...无论您使用什么 FontStyle 和 FontSize...
I fined i perfect way around (you can make a custom control from this):
First of all wrap your object into the Canvas...
And add LayoutUpdated event handler to Canvas
After pressing F5 you have to see a miracle :)
PS: Now text do as you wish... no mather what FontStyle and FontSize you use...
尝试使用
Border.Margin
属性..(尝试将其设置为“0,-5,0,-5”,或其他一些数字)Try to play with
Border.Margin
property.. (try to set it to "0,-5,0,-5", or some other numbers)