WPF`Galphs`没有像TextBlock那样呈现文本

goo*_*dev 6 .net c# vb.net wpf

我正在使用Glyphs元素制作WPF文本编辑器.我有一个问题是文本没有正确绘制,如图所示,我该如何解决这个问题?

在此输入图像描述

有两个问题:

  1. 字母之间的字距.
  2. 字母和变音符号之间的字距.

我通过GetKerningPairs功能解决了第一个问题.

我该如何解决这个问题,也许我错了?

<Window x:Class="MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="200" Width="525">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="100"/>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="AUTO"/>
            <RowDefinition Height="AUTO"/>
        </Grid.RowDefinitions>

        <TextBlock Text="TextBlock" VerticalAlignment="Center" Margin="6"/>
        <TextBlock Grid.Row="1" Text="Glyphs" VerticalAlignment="Center" Margin="6"/>

        <TextBlock Text="???????????" Grid.Column="1" FontSize="50" FontFamily="Times New Roman"
                   FontWeight="Normal" Grid.Row="0"/>

        <Glyphs Grid.Row="1" Grid.Column="1"
            FontUri             = "C:\WINDOWS\Fonts\TIMES.TTF"
            FontRenderingEmSize = "50"
            UnicodeString       = "???????????"
            BidiLevel="1"
            Fill                = "Black"/>

        <TextBlock Text="AVAV" Grid.Column="2" FontSize="50" FontFamily="Times New Roman"
                   FontWeight="Normal" Grid.Row="0"/>

        <Glyphs Grid.Row="1" Grid.Column="2"
            FontUri             = "C:\WINDOWS\Fonts\TIMES.TTF"
            FontRenderingEmSize = "50"
            UnicodeString       = "AVAV"
            BidiLevel="0"
            Fill                = "Black"/>

    </Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)

cod*_*Dom 2

TrueType 字体中不存在变音符号的字距调整,因此您必须定义自己的变音符号对列表,并给出相应的字距调整。在大多数字母中,变音符号位于中间,而其他字母则位于右侧。显然,文本块执行了上述操作。