/// <summary> /// 新增至投票者滑動動畫佇列中等待開始滑動動畫 /// </summary> /// <param name="vote">要顯示滑動動畫的投票</param> private void AddShowVoterColle(CommentVM vote) { SlideTextItemVM showVoter = new SlideTextItemVM(); showVoter.Text = vote.AuthorName; showVoter.SlideFinished += On_ShowVoter_SlideFinished; _showVoterQueue.Enqueue(showVoter); _showVoterQueueTimer.Start(); }
/// <summary> /// 新增至評分者滑動動畫佇列中等待開始滑動動畫 /// </summary> /// <param name="rater">要顯示滑動動畫的評分</param> /// <param name="score">分數</param> private void AddShowRaterColle(CommentVM rater, int score) { SlideTextItemVM showRater = new SlideTextItemVM(); showRater.Text = rater.AuthorName + ": " + score.ToString(); showRater.SlideFinished += On_ShowRater_SlideFinished; showRater.ShowTime = 3 * 1000; _showRaterQueue.Enqueue(showRater); _showRaterQueueTimer.Start(); }
/// <summary> /// 處理評分者名稱滑動動畫佇列 /// </summary> private void On_ShowRaterQueueTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { SlideTextItemVM showRater; if (_showRaterQueue.TryDequeue(out showRater)) { //插入列表最上層於UI上顯示 _showRaterColle.Insert(0, showRater); if (_showRaterColle.Count > this.ShowRaterRowCount) { SlideTextItemVM t = _showRaterColle.ElementAtOrDefault(this.ShowRaterRowCount); if (t != null) { t.IsClose = true; } } } else { //佇列清空,關閉計時器 _showRaterQueueTimer.Stop(); } }
/// <summary> /// 處理投票者名稱滑動動畫佇列 /// </summary> private void On_ShowVoterQueue_Elapsed(object sender, ElapsedEventArgs e) { SlideTextItemVM showVoter; if (_showVoterQueue.TryDequeue(out showVoter)) { //插入列表最上層於UI上顯示 _showVoterColle.Insert(0, showVoter); if (_showVoterColle.Count > 2) { //UI上顯示超過兩列,令第三列提早觸發滑動動畫 SlideTextItemVM t = _showVoterColle.ElementAtOrDefault(2); if (t != null) { t.IsClose = true; } } } else { //佇列清空,關閉計時器 _showVoterQueueTimer.Stop(); } }
private void On_ShowRater_SlideFinished(SlideTextItemVM sender) { RemoveShowRater(sender); }
private void RemoveShowRater(SlideTextItemVM vm) { _showRaterColle.Remove(vm); }
/// <summary> /// 當滑動動畫項目完成滑動後 /// </summary> /// <param name="sender">完成滑動動畫的項目</param> private void On_ShowVoter_SlideFinished(SlideTextItemVM sender) { //從滑動列表中移除 RemoveShowVoter(sender); }
/// <summary> /// 從投票者滑動動畫列表中移除 /// </summary> /// <param name="vm">要移除的滑動項目</param> public void RemoveShowVoter(SlideTextItemVM vm) { _showVoterColle.Remove(vm); }