wpf在同一个句子中为不同的语言设置不同的字体

时间:2015-03-24 12:24:11

标签: c# wpf fonts

我正在实现一个允许用户更改标签中句子字体的应用程序。该句子包含中文和英文字符。 我现在所做的是用户可以选择一种字体,该字体将适用于中文和英文字符。

现在用户认为对于中文字符,应该使用另一种字体。这意味着在同一个句子中,英文字符使用字体A,中文字符使用字体B.字体A& B应该让用户选择。此功能就像Microsoft Word中的字体设置一样,就像下面的链接一样。 http://blogs.igalia.com/jaragunde/files/2014/04/Word-font-selector.png

请注意,一旦用户选择中文字体,句子中的所有中文字符都将自动更改为该字体。句子中的汉字取决于一些输入文件。

我知道wpf中有一些叫做复合字体的东西。但我不知道如何实现它。谢谢!

1 个答案:

答案 0 :(得分:1)

它可能不是一个非常优雅的解决方案。但您可以将TextBlock设置为标签内容,并对英文和中文字符使用不同的运行。

这样的事情:

<Window.Resources>
        <Style TargetType="Run" x:Key="EnglishCharacters">
            <Setter Property="FontFamily" Value="Comic Sans MS" />
        </Style>
        <Style TargetType="Run" x:Key="ChineseCharacters">
            <Setter Property="FontFamily" Value="Batang" />
        </Style>
    </Window.Resources>
    <Label>
        <TextBlock>
            <Run Style="{StaticResource EnglishCharacters}">This is English</Run>
            <Run Style="{StaticResource ChineseCharacters}">你们好</Run>
        </TextBlock>
    </Label>