/// <summary> /// 进入动弹详情页 /// </summary> private void list_Tweets_SelectionChanged(object sender, SelectionChangedEventArgs e) { TweetUnit t = this.list_Tweets.SelectedItem as TweetUnit; this.list_Tweets.SelectedItem = null; if (t != null) { Tool.ToDetailPage(t.id.ToString( ), DetailType.Tweet); } }
/// <summary> /// 点击头像进入用户专页 /// </summary> private void img_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { TweetUnit t = (sender as Image).DataContext as TweetUnit; if (t != null) { //进入用户专页 Tool.ToUserPage(t.authorID); e.Handled = true; } }
/// <summary> /// 显示动弹对象 /// </summary> /// <param name="t">动弹对象</param> private void DisplayTweet(TweetUnit t) { this.currentTweet = t; //开始关闭动画 (建议 Fade) this.fadeOut.Begin( ); this.fadeOut.Completed += (s, e) => { //然后控件转变 this.lblName.Text = string.Format("{0}:", t.author); this.lblContent.Text = t.body; this.lblComment.Text = string.Format("{0} {1}评", t.pubDateFormat, t.commentCount); this.imgPortrait.Source = new BitmapImage(new Uri(t.portrait.IsNotNullOrWhitespace( ) ? t.portrait : "/Resource/avatar_noimg.jpg", UriKind.RelativeOrAbsolute)); //最后执行上移动画 this.fadeIn.Begin( ); }; }
/// <summary> /// 删除动弹 /// </summary> private void menu_Delete_Click(object sender, RoutedEventArgs e) { MenuItem item = sender as MenuItem; TweetUnit t = item.DataContext as TweetUnit; if (t != null) { if (t.authorID != Config.UID) { MessageBox.Show("不能删除别人的动弹", "温馨提示", MessageBoxButton.OK); return; } Dictionary <string, string> parameters = new Dictionary <string, string> { { "uid", Config.UID.ToString() }, { "tweetid", t.id.ToString() }, }; WebClient client = Tool.SendWebClient(Config.api_tweet_delete, parameters); client.DownloadStringCompleted += (s, e1) => { if (e1.Error != null) { System.Diagnostics.Debug.WriteLine("删除动弹时网络错误: {0}", e1.Error.Message); return; } else { ApiResult result = Tool.GetApiResult(e1.Result); switch (result.errorCode) { case 1: this.listBoxHelper.Refresh( ); break; case 0: case -1: case -2: MessageBox.Show(result.errorMessage, "温馨提示", MessageBoxButton.OK); break; default: break; } } }; } }
/// <summary> /// 如果动弹不包含图片 则删除Image控件节约性能 /// </summary> private void imgTweet_Loaded(object sender, RoutedEventArgs e) { Image img = sender as Image; TweetUnit t = img.DataContext as TweetUnit; if (t != null && t.imgSmall.IsNotNullOrWhitespace( )) { } else { Panel panel = img.Parent as Panel; if (panel != null) { panel.Children.Remove(img); } } }
/// <summary> /// 点击动弹图片 打开大图进行查看 /// </summary> private void imgTweet_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { TweetUnit t = (sender as Image).DataContext as TweetUnit; if (t != null) { e.Handled = true; //查看大图 this.pop = new PopUpImage( ); this.pop.Create(t.imgBig); this.IsEnabled = false; this.pop.pop.Closed += (s, e1) => { this.IsEnabled = true; }; } }
/// <summary> /// 获取下一个动弹对象 /// </summary> /// <param name="tweets">动弹集合</param> private void GetNextTweetUnit(TweetUnit[] tweets) { if (tweets != null && tweets.Length > 0) { TweetUnit t = tweets[0]; for (int i = 0; i < tweets.Length; i++) { if (tweets[i].id == tweetID) { //返回下一项 t = i < tweets.Length - 1 ? tweets[i + 1] : tweets[0]; break; } } //获取下一项 this.tweetID = t.id; this.DisplayTweet(t); } }