我找到了一个FontAwesome库的大型枚举,我想在我的WPF应用程序中使用它来处理Textblocks中的图标/图像。枚举如下所示:
public enum Type
{
...
//ExclamationCircle, 0xf06A
ExclamationCircle = 0xf06A,
//ExclamationTriangle, 0xf071
ExclamationTriangle = 0xf071,
//Expand, 0xf065
Expand = 0xf065,
...
}
我想使用这个枚举来设置我的Textblock的值,所以我不必使用旁边的HEX值(例如0xf071)。在我的XAML中,我有以下工作方式:
<TextBlock x:Name="tbIcon" FontFamily="{StaticResource FontAwesome}" Text="" Foreground="{StaticResource RedBrush}" FontSize="20" VerticalAlignment="Center" Margin="10" />
当我添加以下代码时,我不再获取图像,而是获取我输入的实际文本。
public DialogBase(string title, string message, Window owner)
{
InitializeComponent();
tbIcon.Text = FontAwesome.Type.ExclamationTriangle.AsHexString();
}
public static string AsHexString(this FontAwesome.Type type)
{
return String.Format(@"\u{0}", ((int)type).ToString("X").ToLower());
// This is returning "\uf071"
}
从长远来看,我想让它成为一个新控件的公共属性,这样它就可以绑定了,但我想先让这个步骤工作。
答案 0 :(得分:0)
尝试将你更改为 x :
public static string AsHexString(this FontAwesome.Type type)
{
return String.Format(@"\x{0}", ((int)type).ToString("X").ToLower());
// This is returning "\xf071"
}
您可能还想尝试像这样设置FontFamily
:
<TextBlock x:Name="tbIcon" TextElement.FontFamily="pack://application:,,,/FontAwesome.WPF;component/#FontAwesome" Foreground="{StaticResource RedBrush}" FontSize="20" VerticalAlignment="Center" Margin="10" />
它对我有用:)