我在Windows Phone 8.1 MVVM應用程序中遇到自定義字體問題。無法在運行時顯示自定義字體 - Windows Phone 8.1 MVVM - FontAwesome
我正在使用FontAwesome圖標。我在我的項目中包含了FontAwesome字體文件。當我設置這樣的靜態控制時,它完美地工作;
<TextBlock x:Name="txtTest" Grid.Row="3" Text="" Foreground="Black" FontSize="20" FontFamily="/Assets/Fonts/FontAwesome.ttf#FontAwesome"/>
但是,我需要的是爲此動態工作。我在應用程序的主頁上有一個Hub控件,每個Hub部分都有ListViews。這些綁定到一組自定義對象,從API響應填充。創建對象集合時,代碼會在響應中查找標記,並根據標記動態設置FontAwesome圖標。
輪轂部代碼:
<HubSection x:Uid="hubApproved" Header="Approved"
DataContext="{Binding MyObjects.Approved}"
d:DataContext="{Binding MyObjects.Approved}"
HeaderTemplate="{ThemeResource HubSectionHeaderTemplate}" >
<DataTemplate>
<ListView
ItemsSource="{Binding}"
ItemTemplate="{ThemeResource ApprovedTemplate}"
IsItemClickEnabled="True"
ItemClick="ListView_ItemClick"
ContinuumNavigationTransitionInfo.ExitElementContainer="True">
</ListView>
</DataTemplate>
</HubSection>
這裏是批准模板結合本:
<DataTemplate x:Key="ApprovedTemplate">
<StackPanel Margin="0,0,0,19" Background="{x:Null}" >
<TextBlock FontFamily="/Assets/Fonts/FontAwesome.ttf#FontAwesome" Text="{Binding Icon}" Foreground="Black" />
<TextBlock Text="{Binding SupplierName}" Style="{ThemeResource ListViewItemTripNameTextBlockStyle}" />
<TextBlock Style="{ThemeResource ListViewItemSubheaderTextBlockStyle}" Text="{Binding StartDate}"></TextBlock>
</StackPanel>
</DataTemplate>
模板包含結合到我的對象的圖標屬性一個TextBlock。這是應該然後顯示適當FontAwesome圖標,而是隻顯示圖標的Unicode:
我試圖限定從視圖中的後面的代碼集線器控制的字體,但它沒有任何效果:
Hub.FontFamily = new FontFamily("ms-appx:///Assets/Fonts/FontAwesome.otf#FontAwesome");
如何動態獲取這些圖標可顯示任何想法...?由於
不幸的是,沒有工作。它仍然只是顯示unicode。如果我將文本設置爲unicode,它就可以工作。但是,這是弄糟它的{綁定圖標}。幾乎就好像在控件創建後加載字體一樣 – odinel