WPF .NET8中Material Symbols字体连字功能失效问题求助
WPF .NET8 中 Material Symbols 字体连字功能失效问题
我在C# WPF .NET8环境中使用Google的Material Symbols字体连字功能时遇到问题,此前使用Material Icons字体一切正常。
字体文件来源
- Material Symbols:官方下载的
MaterialSymbolsOutlined-Regular.ttf - Material Icons:官方仓库的
MaterialIcons-Regular.ttf
测试代码
我将两个TTF文件作为资源导入,用以下XAML代码测试图标显示:
<StackPanel> <TextBlock>Material Icons:</TextBlock> <TextBlock FontFamily="{StaticResource MaterialIcons}" Foreground="Red" FontSize="30"></TextBlock> <TextBlock FontFamily="{StaticResource MaterialIcons}" Foreground="Red" FontSize="30">favorite</TextBlock> <TextBlock>Material Symbols:</TextBlock> <TextBlock FontFamily="{StaticResource MaterialSymbols}" Foreground="Red" FontSize="30"></TextBlock> <TextBlock FontFamily="{StaticResource MaterialSymbols}" Foreground="Red" FontSize="30">favorite</TextBlock> </StackPanel>
现象
测试结果显示,只有Material Symbols的连字功能无法正常工作:Material Icons的"favorite"文本能正确转换为图标,而Material Symbols的"favorite"仅显示原文字,无法触发连字转换。
交叉验证
为排除字体文件问题,我用HTML页面做了验证:
<!DOCTYPE html><html> <head><style> @font-face { font-family: "MaterialIcons"; src:url( "file:///C:/Users/username/Desktop/MaterialIcons-Regular.ttf"); } @font-face { font-family: "MaterialSymbols"; src:url( "file:///C:/Users/username/Desktop/MaterialSymbolsOutlined-Regular.ttf"); } </style></head> <body> <p>Material Icons</p> <p><b style="font-family: 'MaterialIcons'">favorite</b></p> <p>Material Symbols</p> <p><b style="font-family: 'MaterialSymbols'">favorite</b></p> </body> </html>
HTML测试中两个字体的连字功能均正常,"favorite"文本都能成功转换为对应图标,因此可以确定是WPF相关问题。
已尝试的解决方案
我给TextBlock添加了以下属性及各种组合,但问题仍未解决:
Typography.StandardLigatures="True" Typography.DiscretionaryLigatures="True" TextOptions.TextFormattingMode="Ideal" TextOptions.TextRenderingMode="ClearType" Typography.HistoricalLigatures="True" Typography.ContextualLigatures="True" Typography.ContextualAlternates="True"
内容的提问来源于stack exchange,提问作者kleinpoe
相关产品推荐
相关产品推荐

