private PictureBox GetPictureBox(Model.Message message) { PictureBox pb = new PictureBox() { BackgroundImageLayout = ImageLayout.Zoom, BackgroundImage = ServiceClient.FromBytesToImage(message.Attach), Size = ServiceClient.FromBytesToImage(message.Attach).Size, MaximumSize = new Size(200, 200), Cursor = Cursors.Hand }; pb.Click += (sender, args) => { string path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyPictures), "Hummingbird Pictures"); if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } path = Path.Combine(path, message.ID + "." + message.AttachName.Split('.').Last()); if (!File.Exists(path)) { File.WriteAllBytes(path, message.Attach); } Process.Start(path); }; return(pb); }
private Label GetUsername(Model.Message message) { return(new Label() { Anchor = AnchorStyles.Left | AnchorStyles.Right, ForeColor = Properties.Settings.Default.PrimaryColor, Font = new Font("Segoe UI Light", 10F, FontStyle.Regular, GraphicsUnit.Point, 204), Name = message.UserFromID.ToString(), MinimumSize = new Size(0, LabelSizeY / 2), Margin = new Padding(3, 5, 0, 0), Text = message.User.Nickname, TextAlign = ContentAlignment.MiddleLeft, }); }
private Label GetLabel(Model.Message message) { return(new Label() { Anchor = AnchorStyles.Left | AnchorStyles.Right, //BorderStyle = BorderStyle.FixedSingle, Font = new Font("Segoe UI", 12F, FontStyle.Regular, GraphicsUnit.Point, 204), Name = message.ID.ToString(), MinimumSize = new Size(0, LabelSizeY), Text = message.Text, TextAlign = ContentAlignment.MiddleLeft, Width = MessagesPanel.GetColumnWidths()[0] - 20 }); }
private void AddMessage(Model.Message message) { if (_lastMessageUserID == new Guid() || _lastMessageUserID != message.UserFromID) { _lastMessageUserID = message.UserFromID; MessagesPanel.RowCount++; MessagesPanel.RowStyles.Add(new RowStyle(SizeType.AutoSize)); MessagesPanel.Controls.Add(GetUsername(message), 1, MessagesPanel.RowCount - 1); } MessagesPanel.RowCount++; MessagesPanel.RowStyles.Add(new RowStyle(SizeType.AutoSize)); MessagesPanel.Controls.Add(GetLabel(message), 1, MessagesPanel.RowCount - 1); //if (_chat.TimeToLive > 0) //{ // MessagesPanel.Controls.Add(new PictureBox // { // BackgroundImage = Properties.Resources.timer, // BackgroundImageLayout = ImageLayout.Zoom, // Width = Height = 16, // //Anchor = AnchorStyles.Left | AnchorStyles.Right // }, // 0, MessagesPanel.RowCount - 1); //} if (message.AttachType == Message.AttachTypes.File) { MessagesPanel.RowCount++; MessagesPanel.RowStyles.Add(new RowStyle(SizeType.AutoSize)); MessagesPanel.Controls.Add(new AttachedFileControl(message.AttachName, message.Attach), 1, MessagesPanel.RowCount - 1); } else if (message.AttachType == Message.AttachTypes.Image) { MessagesPanel.RowCount++; MessagesPanel.RowStyles.Add(new RowStyle(SizeType.AutoSize)); MessagesPanel.Controls.Add(GetPictureBox(message), 1, MessagesPanel.RowCount - 1); } MessagesPanel.RowCount++; }