private async void IndexList_ItemClick(object sender, ItemClickEventArgs e)
        {
            var item = e.ClickedItem as LrcMetaData;

            if (item == null)
            {
                return;
            }
            var lrc = await LrcProcessHelper.FetchLrcByIdAsync(item.ID);

            if (lrc == null)
            {
                return;
            }
            if (MainUpContentFrame.Content is FM_SongBoardPage)
            {
                var board_page = MainUpContentFrame.Content as FM_SongBoardPage;
                board_page.VMForPublic.LrcList = await LrcProcessHelper.ReadLRCFromWebAsync(null, null, Colors.White, lrc);

                await board_page.SetDefaultLrcAndAnimationsAsync(false);

                board_page.CloseInnerContentPanel();
                board_page.ResetCanvasViewVisibility();
            }
        }
        private async Task InitMusicBoardAsync(MusicBoardParameter args)
        {
            try {
                is_init_progress = true;
                sid           = args.SID;
                ssid          = args.SSID;
                aid           = args.AID;
                path_url      = args.Url;
                identity_song = MHzSongBaseHelper.GetIdentity(args);
                THIS_SONG     = args.Song;

                await GetMusicDetailsAsync();

                UnregisterServiceEvents();
                RegisterServiceEvents();

                MusicSlider.ValueChanged -= MusicSlider_ValueChanged;
                MusicBoardVM.CurrentTime  = Service.Session.Position;
                MusicBoardVM.Duration     = Service.Session.NaturalDuration;
                MusicSlider.ValueChanged += MusicSlider_ValueChanged;

                MusicBoardVM.BackImage   = image;
                MusicBoardVM.LrcTitle    = title;
                MusicBoardVM.ListCount   = Service.CurrentSongList.Count;
                MusicBoardVM.CurrentItem = Service.CurrentItem;

                RandomButton.Content =
                    Service.PlayType == MusicServicePlayType.ShufflePlay ? char.ConvertFromUtf32(0xE8B1) :
                    Service.PlayType == MusicServicePlayType.AutoRepeat ? char.ConvertFromUtf32(0xE8EE) :
                    Service.PlayType == MusicServicePlayType.SingletonPlay ? char.ConvertFromUtf32(0xE8ED) :
                    char.ConvertFromUtf32(0xE84F);

                SongListButton.Content = Service.ServiceType == MusicServiceType.SongList ?
                                         char.ConvertFromUtf32(0xE142) :
                                         char.ConvertFromUtf32(0xE93E);

                if (Service.Session.PlaybackState == MediaPlaybackState.Playing)
                {
                    DoWorkWhenMusicPlayed();
                }
                else if (Service.Session.PlaybackState == MediaPlaybackState.Paused)
                {
                    DoWorkWhenMusicPaused();
                }

                MusicBoardVM.LrcList           = null;
                ChangeDownloadStatus(is_cached = await StorageHelper.IsExistLocalJsonBySHA256Async(MHzSongBaseHelper.GetIdentity(args)));
                songMessCollection             = (await LrcProcessHelper.GetSongMessageListAsync(title, artist)) ?? new List <LrcMetaData>();
            } catch {
                ReportHelper.ReportAttentionAsync(GetUIString("MediaSource_EEEEEEEError"));
            } finally { await SetDefaultLrcAndAnimationsAsync(); }
        }