public MainPage() { InitializeComponent(); var home = new FadeLabel { Content = "home", Margin = new Thickness(5, 0, 0, 0) }; home.MouseDown += HomeButton_OnMouseDown; Header.Children.Add(home); var play = new FadeLabel { Content = "play", Margin = new Thickness(5, 0, 0, 0) }; play.MouseDown += PlayButton_OnMouseDown; Header.Children.Add(play); var profile = new FadeLabel { Content = "profile", Margin = new Thickness(5, 0, 0, 0) }; profile.MouseDown += NotReadyFeature; Header.Children.Add(profile); var shop = new FadeLabel { Content = "shop", Margin = new Thickness(5, 0, 0, 0) }; shop.MouseDown += NotReadyFeature; Header.Children.Add(shop); var settings = new FadeLabel { Content = "settings", Margin = new Thickness(5, 0, 0, 0) }; settings.MouseDown += NotReadyFeature; Header.Children.Add(settings); if (StaticVars.AccountInfo.IsDev) { var devLabel = new FadeLabel { Content = "dev", Margin = new Thickness(5, 0, 0, 0) }; devLabel.MouseDown += DevLabel_MouseDown; Header.Children.Add(devLabel); } UserInterfaceCore.MainPage = this; Load(); foreach (var player in StaticVars.ActiveClient.Players) { var chatItem = new SmallChatItem { PlayerNameLabel = { Content = player.Username }, StatusLabel = { Content = player.Status }, Tag = player }; chatItem.MouseDoubleClick += item_MouseDoubleClick; if (player.Mobile) { chatItem.StatusEllipse.Fill = Brushes.Orange; } else if (player.IsOnline && player.IsAway) { chatItem.StatusEllipse.Fill = Brushes.Red; } else if (player.IsOnline) { chatItem.StatusEllipse.Fill = Brushes.Green; } else { chatItem.StatusEllipse.Fill = Brushes.Gray; } ChatStackPanel.Children.Add(chatItem); } StaticVars.ActiveClient.OnUpdatePlayer += OnUpdatePlayer; }
void OnUpdatePlayer(object sender, ChatPlayerItem e) { Dispatcher.BeginInvoke(DispatcherPriority.Render, (Action)(() => { SmallChatItem item = null; foreach (SmallChatItem items in ChatStackPanel.Children) { if ((string)items.PlayerNameLabel.Content == e.Username) { item = items; } } if (item == null) { item = new SmallChatItem { Tag = e }; item.MouseDoubleClick += item_MouseDoubleClick; ChatStackPanel.Children.Add(item); } item.PlayerNameLabel.Content = e.Username; item.StatusLabel.Content = e.Status; var converter = new BrushConverter(); if (!e.IsOnline) { ChatStackPanel.Children.Remove(item); } else if (e.GameStatus == "outOfGame" && !e.IsAway) { item.StatusEllipse.Fill = (Brush)converter.ConvertFromString("#2ecc71"); } else { item.StatusEllipse.Fill = (Brush)converter.ConvertFromString("#e74c3c"); } foreach (PlayerChatControl items in PlayerChatStackPanel.Children) { if ((string)items.PlayerNameLabel.Content == e.Username) { items.StatusEllipse.Stroke = null; if (e.Mobile) { items.StatusEllipse.Fill = Brushes.Orange; } else if (!e.IsOnline) { items.StatusEllipse.Fill = (Brush)converter.ConvertFromString("#02000000"); items.StatusEllipse.Stroke = (Brush)converter.ConvertFromString("#FFA0A0A0"); } else if (e.GameStatus == "outOfGame" && !e.IsAway) { items.StatusEllipse.Fill = (Brush)converter.ConvertFromString("#2ecc71"); } else { items.StatusEllipse.Fill = (Brush)converter.ConvertFromString("#e74c3c"); } } } })); }