Korzystam z ikon Font Awesome, aby renderować podstawowe obrazy czcionek w mojej aplikacji C# WPF. Podczas wykonywania, gdy próbuję zmienić TextBlock, aby wyświetlić inną ikonę czcionki, ale zamiast ikony czcionki wyświetlana jest reprezentacja Unicode.Zmiana ikony czcionki w WPF przy użyciu czcionki niesamowitej
Utworzono przykładową aplikację do wyświetlenia tego. Po kliknięciu jednego z przycisków, zastępuje on właściwość TextBlock Text z symbolem Unicode dla odpowiedniej ikony. W projekcie znajduje się folder Zasoby, który ma plik czcionki FontAwesome.ttf jako zasób kompilacji, do którego odwołuje się właściwość FontFamily obiektu TextBlock.
Oto kod źródłowy mojej przykładowej aplikacji za:
Code-Behind:
namespace FontAwesomeTest
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void btnGlass_Click(object sender, RoutedEventArgs e)
{
tblkFontIcon.Text = "";
}
private void btnMusic_Click(object sender, RoutedEventArgs e)
{
tblkFontIcon.Text = "";
}
private void btnSearch_Click(object sender, RoutedEventArgs e)
{
tblkFontIcon.Text = "";
}
}
}
XAML:
<Window x:Class="FontAwesomeTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Font Awesome Test Window" Height="300" Width="330" Name="FontAwesomeTestWindow">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="50"/>
<RowDefinition Height="25"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Button Name="btnGlass" Height="35" Width="85" Click="btnGlass_Click" >Glass</Button>
<Button Name="btnMusic" Grid.Column="1" Height="35" Width="85" Click="btnMusic_Click">Music</Button>
<Button Name="btnSearch" Grid.Column="2" Width="85" Height="35" Click="btnSearch_Click">Search</Button>
<TextBlock Grid.Row="1" Grid.Column="0" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="18" FontFamily="../Resources/#FontAwesome"></TextBlock>
<TextBlock Grid.Row="1" Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="18" FontFamily="../Resources/#FontAwesome"></TextBlock>
<TextBlock Grid.Row="1" Grid.Column="2" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="18" FontFamily="../Resources/#FontAwesome"></TextBlock>
<TextBlock Name="tblkFontIcon" Grid.Row="2" Grid.ColumnSpan="3" FontSize="64" FontFamily="../Resources/#FontAwesome" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
</Grid>
Użyłem poniższy poradnik do włączenia Czcionka Niesamowite do mojego aplikacja http://www.codeproject.com/Tips/634540/Using-Font-Icons
Więc, w zasadzie, w jaki sposób mogę zmienić ikonę, ale mam wyświetlacz Icon - nie Unicode?
Z góry dziękuję.
Po pierwsze - dziękuję za szybką reakcję! Udostępniona aktualizacja to sposób, w jaki aktualnie używam czcionek w mojej aplikacji WPF. Jak pokazuje to pytanie, obecnie działa, ale wyświetla Unicode, gdy zmieniam właściwość Text, nawet jeśli zmienię ją na ten sam kod Unicode. Próbowałem dołączyć do tego zdjęcia, ale nie mam wystarczającej "ulicznej wiarygodności". Co do części Używanie ikonek czcionki, nie mogę wymyślić, jak go użyć do zmiany ikony w środowisku wykonawczym, tak jak wymaga tego moja potrzeba. Mogę go uruchomić podczas projektowania/budowania czasu. – Gareth
Myślę, że powinieneś ustawić tekst z ciągiem znaków Unicode, zamiast ustawiać go za pomocą "& # xf000;". – terry
Zaktualizowałem i możesz użyć tego kodu, aby zmienić TextBlock.Text na inny ciąg znaków Unicode, i to powinno działać. – terry