2017-05-23 89 views
-1

我發現了一個FontAwesome庫的大枚舉,我想在我的WPF應用程序中使用Textblocks中的圖標/圖像。枚舉如下所示:枚舉十六進制值textbloc文本

public enum Type 
{ 
    ... 
    //ExclamationCircle, 0xf06A 
    ExclamationCircle = 0xf06A, 
    //ExclamationTriangle, 0xf071 
    ExclamationTriangle = 0xf071, 
    //Expand, 0xf065 
    Expand = 0xf065, 
    ... 
} 

我想使用此枚舉設置我的文字塊的價值,所以我沒有用它旁邊的十六進制值(0xf071爲例)。在我的XAML,我有工作我多麼希望以下:

<TextBlock x:Name="tbIcon" FontFamily="{StaticResource FontAwesome}" Text="&#xf071;" Foreground="{StaticResource RedBrush}" FontSize="20" VerticalAlignment="Center" Margin="10" /> 

binding image

當我添加以下代碼,我不再獲得圖像,但我已經進入了實際的文本。

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" 
} 

incorrect image

從長遠來看,我想使這個新的控制的公共屬性,因此它可以被綁定,但我希望得到這一步第一工作。

回答

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" /> 

它爲我:)