为什么在TextBlock中为阿拉伯语/波斯文本添加格式会破坏XAML中的字符组合

时间:2014-02-28 16:40:09

标签: silverlight xaml windows-phone-8 arabic persian

在给定的单词中,我想要显示一个或多个具有不同格式的Perso-Arabic字母(例如,不同的颜色,更大的尺寸等)。这打破了组合字符。在以下3个项目中: 1)包裹在<Span/>中的单词并且显示正确 2)单词的中间字母包裹在<Span/>中,并且显示正确 3)单词的中间字母用<Span/>包裹,颜色变为红色 - 无法正确显示

        <TextBlock xml:lang="fa-IR" Language="fa-IR" FontSize="60" FlowDirection="RightToLeft">
            <TextBlock.Inlines>
                <Span Foreground="Yellow">حال</Span>
                ح<Span>ا</Span>ل
                ح<Span Foreground="Red">ا</Span>ل
            </TextBlock.Inlines>
        </TextBlock>

我使用的XAML是WP8版本。在这个问题上是否存在应用格式而不是中断组合字符?

1 个答案:

答案 0 :(得分:2)

我担心是否有完整的解决方案,但作为解决方法,您可以使用2个特殊的Unicode字符。在ح之后使用ARABIC TATWEEL character,在ا之后使用ZERO WIDTH JOINER character

HTML中你应该试试这个:

ح&#1600;<strong>ا&#8205;</strong>ل

你可以尝试here。有关更多信息,请参阅伊朗国家标准ISIRI 6219ISIRI 9147。您也可以尝试在Persian Computing Community中提问。