使用 Xamarin Forms 5 和 Visual Studio 2022。
我已将 materialdesignicons-webfont.ttf
添加到 PCL 项目的 Fonts 文件夹中,并将其标记为嵌入资源。
我在 AssemblyInfo.cs
文件中添加了以下内容:
[assembly: ExportFont("materialdesignicons-webfont.ttf", Alias = "mdi")]
以下 XAML 工作正常:
<Image x:DataType="models:IPageResourceProvider"
BackgroundColor="Transparent"
IsVisible="{Binding IconType, Converter={StaticResource IconTypeConverter}, ConverterParameter={x:Static enums:IconType.MaterialDesignIcon}}">
<Image.Source>
<FontImageSource Glyph="󰭕"
FontFamily="mdi"
Size="32"
Color="Black" />
</Image.Source>
</Image>
但是我想绑定(bind)字形,但是下面只显示 5 作为图像(unicode 的最后一个字符):
<Image x:DataType="models:IPageResourceProvider"
BackgroundColor="Transparent"
IsVisible="{Binding IconType, Converter={StaticResource IconTypeConverter}, ConverterParameter={x:Static enums:IconType.MaterialDesignIcon}}">
<Image.Source>
<FontImageSource Glyph="{Binding IconName}"
FontFamily="mdi"
Size="32"
Color="Black" />
</Image.Source>
</Image>
接口(interface) IPageResourceProvider 具有以下属性:
string IconName {get; }
实现返回:
string IconName => "\uF0B55";
我不知道我做错了什么,欢迎任何想法。
最佳答案
在 C#
中使用 4 个字节表示 UTF-32 字形。
字形 U+10FFFD
的 C#
示例。请注意大写的U
:
public string IconName => "\U0010FFFD";
另请参阅有关四位和八位 Unicode 转义码的注释 here .
XAML
中字形 U+10FFFD
的示例:
Glyph="􏿽"
关于c# - 使用 Binding 时出现 FontImageSource Glyph 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74107690/