我试图用周围的文本/图形而不是它上面的星号排成一行.
我认为应用负BaselineOffset将是解决方案,但似乎没有效果.
这是TextBlock.BaselineOffset属性的文档:
属性值类型:System.Double
每行文本在基于设备的像素中偏离基线的量.Double.NaN表示从当前字体特征自动计算最佳基线偏移.默认值为Double.NaN.
备注
基线是假想的水平线,用于对齐文本行中每个字符的基础.
样本标记:
<TextBlock
Name="ReadUnreadIndicator"
Grid.Column="0"
VerticalAlignment="Center"
FontWeight="Bold"
FontSize="24"
BaselineOffset="-10"
Text="*" />
Run Code Online (Sandbox Code Playgroud)
无论我为BaselineOffset投放什么,星号总是出现"上标".
问题:
为什么BaselineOffset不适合我?我使用它错了还是框架中的错误?
如何在不使用边距的情况下向下移动星号(这会在TextBlock上方创建我不想要的空间)?
据我所知,TextBlock.BaselineOffset唯一影响TextBlock另一个内部TextBlock:
<TextBlock>Some text <TextBlock BaseLineOffset="10" Text="*"/></TextBlock>
Run Code Online (Sandbox Code Playgroud)
调整BaseLineOffset允许您相对于"某些文本"垂直移动星号.请注意,BaseLineOffset指示的默认值Double.NaN不同于0,您可能需要一个正偏移量,以避免将星号向下移动太远.
但正如您在评论中指出的那样使用BaseLineOffset不是一个好的解决方案.问题似乎是星号字形不符合您的喜好.我建议您切换到自己在WPF中绘制的字形,并使用正确的位置和外观,而不是将其放在文本旁边,使用类似的东西StackPanel来排列它们.
| 归档时间: |
|
| 查看次数: |
2509 次 |
| 最近记录: |