我正在制作一个LongListboxSelector
显示音轨的页面。每个项目都有Button
“播放”以及TextBlock
艺术家和标题信息。我正在使用BackgroundAudioPlayer
. 我的愿望是制作下一个:当曲目正在播放时 - 图像Button
是“暂停”,当曲目结束时 - 使其Button
图像“播放”,并使下一曲目的Button
图像“暂停”(下一首曲目自动播放)。我试过了,喜欢这个
public AudioListPage()
{
InitializeComponent();
BackgroundAudioPlayer.Instance.PlayStateChanged += Instance_PlayStateChanged;
}
void Instance_PlayStateChanged(object sender, EventArgs e)
{
if (BackgroundAudioPlayer.Instance.PlayerState == PlayState.Stopped)
{
IEnumerable buttons = AudioLLS.Descendants<Coding4Fun.Phone.Controls.RoundButton>();
var test = new BitmapImage(new Uri(@"/Images/appbar.transport.pause.rest.png", UriKind.Relative));
foreach (Coding4Fun.Phone.Controls.RoundButton item in buttons)
{
if (item.ImageSource == test)
{
MessageBox.Show("in new image");
item.ImageSource = new BitmapImage(new Uri(@"/Images/appbar.transport.play.rest.png", UriKind.Relative));
buttons.GetEnumerator().MoveNext();
item.ImageSource = new BitmapImage(new Uri(@"/Images/appbar.transport.pause.rest.png", UriKind.Relative));
}
}
}
}
PlayState.Stopped
当 track 结束时触发,next 将开始。我尝试使用LinqToVisualTree
helper in获取 LLS 中的所有按钮,IEnumerable buttons = AudioLLS.Descendants<Coding4Fun.Phone.Controls.RoundButton>()
并将它们的图像与test
. 但正如我所看到的 - 我做错了,因为阻止if(item.ImageSource == test)
我的应用程序永远不会出现。请告诉我,我做错了什么?如果我解决问题的方法不好 - 请告诉我如何以简单的方式做到这一点。