public Welcome(BiliLiveJsonParser.Welcome welcome) { InitializeComponent(); UserBox.Text = welcome.User.Name; if (welcome.Svip) { TitleBox.Text = "年费老爷"; UserBox.Foreground = SvipBrush; TitleBox.Foreground = SvipBrush; } else { TitleBox.Text = "老爷"; UserBox.Foreground = VipBrush; TitleBox.Foreground = VipBrush; } UserId = welcome.User.Id; FaceImage.Source = null; //BitmapImage bitmapImage = FaceLoader.LoadFormCache(UserId); //FaceImage.Source = bitmapImage; //if (!FaceLoader.LoadFormCache(this)) // //SetFace(bitmapImage); // //if(bitmapImage == null) // FaceLoader.Enqueue(this); FaceLoader.LoadFace(this); }
private void AppendWelcome(BiliLiveJsonParser.Welcome welcome) { Dispatcher.Invoke(new Action(() => { TextBlock textBlock = new TextBlock() { TextWrapping = TextWrapping.Wrap }; Run user = new Run() { Text = welcome.User.Name, Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FFDC8C32")), Tag = welcome.User.Id }; user.MouseLeftButtonDown += User_MouseLeftButtonDown; textBlock.Inlines.Add(user); textBlock.Inlines.Add(new Run() { Text = Application.Current.Resources["JoinedIn"].ToString(), Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FFCBDAF7")) }); ListBoxItem listBoxItem = new ListBoxItem() { Content = textBlock, HorizontalContentAlignment = HorizontalAlignment.Left, VerticalContentAlignment = VerticalAlignment.Center }; listBoxItem.MouseRightButtonUp += ListBoxItem_MouseRightButtonUp; listBoxItem.MouseLeftButtonUp += ListBoxItem_MouseLeftButtonUp; listBoxItem.MouseLeave += ListBoxItem_MouseLeave; listBoxItem.Loaded += ListBoxItem_Loaded; DanmakuBox.Items.Add(listBoxItem); RefreshScroll(DanmakuBox); })); }
public void AppendWelcome(BiliLiveJsonParser.Welcome item) { Dispatcher.Invoke(() => { DanmakuPanel.Children.Add(new Welcome(item)); if (!DanmakuScrollViewer.IsMouseOver) { DanmakuScrollViewer.ScrollToBottom(); } CleanDanmakuTime = DateTime.UtcNow.AddSeconds(0.2); }); if (CleanDanmakuTask == null || CleanDanmakuTask.IsCompleted) { CleanDanmakuTask = Task.Factory.StartNew(CleanPanel); } }
public void ProcessItem(BiliLiveJsonParser.IItem item) { if (Window == null) { return; } switch (item.Cmd) { case BiliLiveJsonParser.Cmds.DANMU_MSG: BiliLiveJsonParser.Danmaku danmaku = (BiliLiveJsonParser.Danmaku)item; if (danmaku.Type == 0) { if (OptionDict[DanmakuShowConfig.DisplayFilterOptions.Danmaku]) { Window.AppendDanmaku(danmaku); } } else if (OptionDict[DanmakuShowConfig.DisplayFilterOptions.RythmStorm]) { Window.AppendRythmStorm(danmaku); } break; case BiliLiveJsonParser.Cmds.SUPER_CHAT_MESSAGE: BiliLiveJsonParser.SuperChat superChat = (BiliLiveJsonParser.SuperChat)item; if (OptionDict[DanmakuShowConfig.DisplayFilterOptions.SuperChat]) { Window.AppendSuperChat(superChat); } break; case BiliLiveJsonParser.Cmds.SEND_GIFT: BiliLiveJsonParser.Gift gift = (BiliLiveJsonParser.Gift)item; if (!giftCacheManager.AppendToExist(gift)) { GiftCacheManager.GiftCache giftCache = giftCacheManager.AppendCache(gift); if (gift.CoinType == "gold" && OptionDict[DanmakuShowConfig.DisplayFilterOptions.GoldenGift]) { Window.AppendGift(giftCache); } else if (gift.CoinType == "silver" && OptionDict[DanmakuShowConfig.DisplayFilterOptions.SilverGift]) { Window.AppendGift(giftCache); } } break; case BiliLiveJsonParser.Cmds.COMBO_SEND: BiliLiveJsonParser.ComboSend comboSend = (BiliLiveJsonParser.ComboSend)item; if (OptionDict[DanmakuShowConfig.DisplayFilterOptions.ComboSend]) { Window.AppendComboSend(comboSend); } break; case BiliLiveJsonParser.Cmds.WELCOME: BiliLiveJsonParser.Welcome welcome = (BiliLiveJsonParser.Welcome)item; if (OptionDict[DanmakuShowConfig.DisplayFilterOptions.Welcome]) { Window.AppendWelcome(welcome); } break; case BiliLiveJsonParser.Cmds.WELCOME_GUARD: BiliLiveJsonParser.WelcomeGuard welcomeGuard = (BiliLiveJsonParser.WelcomeGuard)item; if (OptionDict[DanmakuShowConfig.DisplayFilterOptions.WelcomeGuard]) { Window.AppendWelcomeGuard(welcomeGuard); } break; case BiliLiveJsonParser.Cmds.GUARD_BUY: BiliLiveJsonParser.GuardBuy guardBuy = (BiliLiveJsonParser.GuardBuy)item; if (OptionDict[DanmakuShowConfig.DisplayFilterOptions.GuardBuy]) { Window.AppendGuardBuy(guardBuy); } break; case BiliLiveJsonParser.Cmds.INTERACT_WORD: BiliLiveJsonParser.InteractWord interactWord = (BiliLiveJsonParser.InteractWord)item; if (interactWord.MessageType == BiliLiveJsonParser.InteractWord.MessageTypes.Entry && OptionDict[DanmakuShowConfig.DisplayFilterOptions.InteractEntry]) { Window.AppendInteractWord(interactWord); } else if (interactWord.MessageType == BiliLiveJsonParser.InteractWord.MessageTypes.Attention && OptionDict[DanmakuShowConfig.DisplayFilterOptions.InteractAttention]) { Window.AppendInteractWord(interactWord); } else if (interactWord.MessageType == BiliLiveJsonParser.InteractWord.MessageTypes.Share && OptionDict[DanmakuShowConfig.DisplayFilterOptions.InteractShare]) { Window.AppendInteractWord(interactWord); } else if (interactWord.MessageType == BiliLiveJsonParser.InteractWord.MessageTypes.SpecialAttention && OptionDict[DanmakuShowConfig.DisplayFilterOptions.InteractSpecialAttention]) { Window.AppendInteractWord(interactWord); } else if (interactWord.MessageType == BiliLiveJsonParser.InteractWord.MessageTypes.MutualAttention && OptionDict[DanmakuShowConfig.DisplayFilterOptions.InteractMutualAttention]) { Window.AppendInteractWord(interactWord); } break; case BiliLiveJsonParser.Cmds.ROOM_BLOCK_MSG: BiliLiveJsonParser.RoomBlock roomBlock = (BiliLiveJsonParser.RoomBlock)item; if (OptionDict[DanmakuShowConfig.DisplayFilterOptions.RoomBlock]) { Window.AppendRoomBlock(roomBlock); } break; } }