我对使用wpf编程非常陌生,所以这可能很基础,但是我不知道如何动态地更改按钮的FontAwesome图标(在C#代码中)。我使用本文here中所述的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;
}
}
如前所述,当单击按钮时,它不显示图标,而仅显示文本“停止”,再次按下时显示“播放”。
FontAwesomeIcon
是枚举。将枚举值分配给Button.Content时,它将显示为文本。
您需要为内容分配ImageAwesome
元素:
btnPlay.Content = new ImageAwesome { Icon = FontAwesomeIcon.LongArrowRight };
btnPlay.Content = new ImageAwesome { Icon = FontAwesomeIcon.Play };
btnPlay.Content = new ImageAwesome { Icon = FontAwesomeIcon.Stop };