void PlayerControlMouseDown(object sender, MouseButtonEventArgs e) { var playerControl = (PlayerChatControl)sender; var item = (ChatPlayerItem)playerControl.Tag; if (ChatControl == null) { ChatControl = new ChatBoxControl(); _holderGrid.Children.Add(ChatControl); } else { var currentName = (string)ChatControl._nameLabel.Content; if (currentName == item.Username) { _holderGrid.Children.Remove(ChatControl); ChatControl = null; return; } } Panel.SetZIndex(ChatControl, 1); ChatControl._nameLabel.Content = item.Username; ChatControl.HorizontalAlignment = HorizontalAlignment.Left; ChatControl.VerticalAlignment = VerticalAlignment.Bottom; var relativePoint = playerControl.TransformToAncestor(Core.Mainwin).Transform(new Point(0, 0)); ChatControl.Margin = new Thickness(relativePoint.X, 0, 0, 30); }
void PlayerControl_MouseDown(object sender, MouseButtonEventArgs e) { var playerControl = (PlayerChatControl)sender; var item = (ChatPlayerItem)playerControl.Tag; ChatBoxControl chatControl; if (!ChatControls.ContainsKey(item.JidAsString)) { chatControl = new ChatBoxControl(new UserJid(item.JidAsString)); StaticVars.ActiveClient.XmppClient.OnMessageRecieved += chatControl.OnMessage; chatControl.HideButton.Click += (o, args) => { HolderGrid.Children.Remove(chatControl); }; chatControl.RemoveButton.Click += (o, args) => { HolderGrid.Children.Remove(chatControl); ChatControls.Remove(item.JidAsString); StaticVars.ActiveClient.XmppClient.OnMessageRecieved -= chatControl.OnMessage; }; ChatControls.Add(item.JidAsString, chatControl); HolderGrid.Children.Add(chatControl); } else { chatControl = ChatControls[item.JidAsString]; var currentName = (string)chatControl.PlayerNameLabel.Content; if (currentName == item.Username) { if (chatControl.IsVisible) { HolderGrid.Children.Remove(chatControl); } else { HolderGrid.Children.Add(chatControl); } return; } } Panel.SetZIndex(chatControl, 1); chatControl.PlayerNameLabel.Content = item.Username; chatControl.HorizontalAlignment = HorizontalAlignment.Left; chatControl.VerticalAlignment = VerticalAlignment.Bottom; Point relativePoint = playerControl.TransformToAncestor(UserInterfaceCore.MainPage).Transform(new Point(0, 0)); chatControl.Margin = new Thickness(relativePoint.X, 0, 0, 30); }