Как изменить иконку Fontawesome.wpf в коде c# - PullRequest
1 голос
/ 28 мая 2020

Я новичок в программировании в wpf, так что это может быть довольно просто c, но я не знаю, как динамически изменить значок FontAwesome кнопки (в коде c#). Я использую пакет nuget, как описано в этом посте здесь . Однако последняя часть:

И, наконец, в вашем C# коде позади:

using FontAwesome.WPF; // on the top of the code
btnButton.Content = FontAwesomeIcon.LongArrowRight;

не работает для меня, поскольку показывает только текст «LongArrowRight "после нажатия кнопки.

Это мой код:

<Window
...
xmlns:fa="http://schemas.fontawesome.io/icons/">

<Grid>
    <Button x:Name="btnPlay" Click="btnPlay_Click">
        <Button.Content>
            <fa:ImageAwesome Icon="Play"/>
        </Button.Content>
    </Button>
</Grid>

</Window>
using FontAwesome.WPF; // at the top

private bool running = false;
private void btnPlay_Click(object sender, RoutedEventArgs e)
{
     if (running) 
     {
         running = false;
         btnPlay.Content = FontAwesomeIcon.Play;
     }
     else
     {
          running = true;
          btnPlay.Content = FontAwesomeIcon.Stop;
     }
}

Как уже говорилось, при нажатии кнопки не отображается значок, а отображается только текст «Стоп» и при повторном нажатии «Воспроизвести» ".

1 Ответ

0 голосов
/ 28 мая 2020

FontAwesomeIcon - это перечисление. Когда вы назначаете значение перечисления для Button.Content, оно будет отображаться как текст.

Вам необходимо назначить элемент ImageAwesome для Content:

btnPlay.Content = new ImageAwesome { Icon = FontAwesomeIcon.LongArrowRight };
btnPlay.Content = new ImageAwesome { Icon = FontAwesomeIcon.Play };
btnPlay.Content = new ImageAwesome { Icon = FontAwesomeIcon.Stop };
...