Microsoft出于提供信息的目的使用特定符号,它是一个字母i Image of the Symbol内的圆圈。我查看了有关Segoe MDL2资产字体的所有资源,但没有找到该符号。有谁知道这个符号是字体的一部分还是只是另一个图像?
答案 0 :(得分:1)
符号代码点为E946
。
以下WPF代码段创建IEnumerable<int>
,其中包含Segoe MDL2 Assets
中的所有符号代码点。
var typeface = new Typeface(
new FontFamily("Segoe MDL2 Assets"),
FontStyles.Normal, FontWeights.Normal, FontStretches.Normal);
GlyphTypeface glyphTypeface;
typeface.TryGetGlyphTypeface(out glyphTypeface);
var codePoints = glyphTypeface.CharacterToGlyphMap.Keys.Where(c => c > 0x20);
您可以通过设置DataContext = codePoints
并编写如下的ItemsControl来轻松地显示此集合:
<ItemsControl ItemsSource="{Binding}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock
Margin="2" VerticalAlignment="Center"
Text="{Binding StringFormat={}{0:X4}}"/>
<TextBlock
Margin="2" FontFamily="Segoe MDL2 Assets" FontSize="24"
Text="{Binding Converter={StaticResource CodePointConverter}}"/>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
使用此CodePointConverter类:
public class CodePointConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return new string((char)(int)value, 1);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotSupportedException();
}
}