如何在后台代码中更改按钮的Segoe MDL2图标?
UWP按钮点击切换Segoe MDL2图标解决方案
你的代码问题在于:XAML中的会被解析为对应的Unicode图标字符,但在C#中直接赋值""时,程序不会将其解析为图标,只会显示该字符串文本。以下是两种正确的实现方式:
方法一:使用Unicode转义序列
在C#中用\u加上四位十六进制码来表示图标字符,同时添加状态切换逻辑:
修改后的C#代码
private bool _isPlaying = false; private void btnPlayPause_Tapped(object sender, TappedRoutedEventArgs e) { _isPlaying = !_isPlaying; // 根据状态切换图标:\uE768是播放,\uE769是暂停 btnPlayPause.Content = _isPlaying ? "\uE769" : "\uE768"; }
方法二:直接使用图标字符
可以直接复制Segoe MDL2 Assets中的图标字符(比如播放图标是,暂停是),赋值给按钮Content:
修改后的C#代码
private bool _isPlaying = false; private void btnPlayPause_Tapped(object sender, TappedRoutedEventArgs e) { _isPlaying = !_isPlaying; btnPlayPause.Content = _isPlaying ? "" : ""; }
注意事项
- 保留XAML中按钮的
FontFamily="Segoe MDL2 Assets"设置,否则图标无法正常显示 - 移除代码中的
async关键字,因为这里没有异步操作,避免不必要的异步状态
内容的提问来源于stack exchange,提问作者Jose Afonso Braga
相关产品推荐
相关产品推荐

