Beispiel #1
0
        private UIElement CreateContainer(object item)
        {
            var picture = new ProfilePicture();

            picture.IsEnabled = false;
            picture.Width     = _itemSize;
            picture.Height    = _itemSize;

            if (item is MessageSender sender)
            {
                RecentUserHeadChanged?.Invoke(picture, sender);
            }

            var borderBrush = new Binding();

            borderBrush.Source = this;
            borderBrush.Path   = new PropertyPath(nameof(BorderBrush));

            var container = new Border();

            container.Width               = _itemSize + 4;
            container.Height              = _itemSize + 4;
            container.VerticalAlignment   = VerticalAlignment.Top;
            container.HorizontalAlignment = HorizontalAlignment.Left;
            container.BorderThickness     = new Thickness(2);
            container.CornerRadius        = new CornerRadius((_itemSize + 4) / 2);
            container.Child               = picture;
            container.Tag = item;
            container.SetBinding(Border.BorderBrushProperty, borderBrush);

            return(container);
        }
 private void RecentUsers_RecentUserHeadChanged(ProfilePicture sender, MessageSender messageSender)
 {
     if (_protoService.TryGetUser(messageSender, out User user))
     {
         sender.SetUser(_protoService, user, 32);
     }
     else if (_protoService.TryGetChat(messageSender, out Chat chat))
     {
         sender.SetChat(_protoService, chat, 32);
     }
 }
Beispiel #3
0
 private void RecentUsers_RecentUserHeadChanged(ProfilePicture photo, MessageSender sender)
 {
     if (_protoService.TryGetUser(sender, out User user))
     {
         photo.SetUser(_protoService, user, 32);
     }
     else if (_protoService.TryGetChat(sender, out Chat chat))
     {
         photo.SetChat(_protoService, chat, 32);
     }
     else
     {
         photo.Source = null;
     }
 }