在WPF应用中使用天气图标字体
本文关键字:图标 字体 WPF 应用 | 更新日期: 2023-09-27 18:13:01
我不太熟悉特殊字符、unicode等。有一个非常好的项目:
天气图标字体,我想在我的应用程序中使用它,所以我下载了字体文件,将其添加到我的项目中,并在文本块中使用路径作为字体族
<TextBlock Text="'f002" FontFamily="Fonts/WeatherIconFont.ttf" />
但是我没有得到预期的项目,也当我试图使用'u0f002或,所以它是可能使用字体正确的这个或以类似的方式,还是我应该去另一个?
非常感谢你的帮助和善意的答案提前!
编辑:我确实犯了一个错误,在TextBlock中使用FontFamily,我把它改成:
<TextBlock Text="'f002" FontFamily="ms-appx:/Fonts/WeatherIconFont.ttf#Weather Icons" />
似乎这个问题从来没有明确的答案,所以我这样做了。下面的实现在我的WPF应用程序中为我工作。
通过下载包或Nuget将"天气图标"文件添加到应用程序后,执行以下操作。
第一步:添加资源到你的应用程序/用户控件
<UserControl.Resources>
<FontFamily x:Key="WeatherIcons">/fonts/weathericons-regular-webfont.ttf#Weather Icons</FontFamily>
</UserControl.Resources>
步骤2:添加textblock控件所需的图标代码,并包括添加为FontFamily的资源。
<TextBlock Text="" FontFamily="{StaticResource WeatherIcons}" />
Update:如果你计划为这些十六进制代码使用绑定,你将需要下面的转换器。
public class StringToGlyphConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value.GetType() != typeof(string))
{
return null;
}
string glyph = (value as string).Substring(3, 4); // for example:  will become e11b
return (char)int.Parse(glyph, NumberStyles.HexNumber);
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return null;
}
}
就像'uf002,一切都如预期的那样工作!
非常感谢所有有趣和有帮助的评论!
如果你最终在这里寻找UWP (Windows 10)的解决方案,那么你应该使用以下命令:
<TextBox Text="" FontFamily="ms-appx:///Assets/Fonts/WeatherIconFont.ttf#Weather Icons#Weather Icons" />