示例#1
0
        private void loadFriends(List <User> friends)
        {
            showInfo.Children.Clear();
            showInfo.ColumnDefinitions.Clear();
            showInfo.RowDefinitions.Clear();
            showInfo.ColumnDefinitions.Clear();
            showInfo.RowDefinitions.Clear();
            showInfo.Children.Clear();

            ColumnDefinition c1 = new ColumnDefinition();

            c1.Width = new GridLength(130);
            showInfo.ColumnDefinitions.Add(c1);

            ColumnDefinition c2 = new ColumnDefinition();

            c2.Width = new GridLength(360);
            showInfo.ColumnDefinitions.Add(c2);



            foreach (User friend in friends)
            {
                Image       image1       = new Image();
                ImageSource imageSource2 = new BitmapImage(new Uri(friend.photoURL));
                image1.Source = imageSource2;
                image1.Margin = new Thickness(10, 10, 10, 10);

                Label l1 = new Label();
                l1.FontSize = 14;
                l1.Content  = "Name: " + friend.name;
                l1.Margin   = new Thickness(0, 0, 0, 0);

                Label l2 = new Label();
                l2.FontSize = 14;

                Button b1 = new Button();
                if (dbms.isFollowed(userID, friend.id))
                {
                    b1.Content             = "unfollow";
                    b1.HorizontalAlignment = HorizontalAlignment.Left;
                    b1.Margin     = new Thickness(0, 0, 0, 0);
                    b1.Height     = 22;
                    b1.Width      = 100;
                    b1.Background = Brushes.LightPink;
                    b1.Foreground = Brushes.White;
                    b1.Click     += (sender, eventArgs) =>
                    {
                        dbms.unfollow(userID, friend.id);
                        b1.IsEnabled = false;
                    };
                }
                else
                {
                    b1.Content             = "follow";
                    b1.HorizontalAlignment = HorizontalAlignment.Left;
                    b1.Margin     = new Thickness(0, 0, 0, 0);
                    b1.Height     = 20;
                    b1.Width      = 100;
                    b1.Background = Brushes.LightPink;
                    b1.Foreground = Brushes.White;
                    b1.Click     += (sender, eventArgs) =>
                    {
                        dbms.followFriend(userID, friend.id);
                        b1.IsEnabled = false;
                    };
                }

                Grid.SetRow(image1, showInfo.RowDefinitions.Count);
                Grid.SetRowSpan(image1, 3);
                Grid.SetColumn(image1, 0);

                Grid.SetRow(l1, showInfo.RowDefinitions.Count);
                Grid.SetColumn(l1, 1);
                RowDefinition rowDef5 = new RowDefinition();
                rowDef5.Height = new GridLength(30);
                showInfo.RowDefinitions.Add(rowDef5);

                Grid.SetRow(l2, showInfo.RowDefinitions.Count);
                Grid.SetColumn(l2, 1);
                RowDefinition rowDef6 = new RowDefinition();
                rowDef6.Height = new GridLength(30);
                showInfo.RowDefinitions.Add(rowDef6);

                Grid.SetRow(b1, showInfo.RowDefinitions.Count);
                Grid.SetColumn(b1, 1);

                List <Activity> activities = dbms.getMyJoinedActivities(friend.id);

                if (activities.Count >= 1)
                {
                    l2.Content = "Latest joined: " + activities[activities.Count - 1].name;
                    Button btMore = new Button();
                    btMore.Content = "More joined activities";
                    btMore.Click  += (s, e) =>
                    {
                        ShowFriendsActivities showFriendACT = new ShowFriendsActivities(userID, friend.id);
                        showFriendACT.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen;
                        showFriendACT.Show();
                        this.Close();
                    };
                    btMore.HorizontalAlignment = HorizontalAlignment.Left;
                    btMore.Margin     = new Thickness(130, 0, 0, 0);
                    btMore.Height     = 22;
                    btMore.Width      = 150;
                    btMore.Background = Brushes.LightBlue;
                    btMore.Foreground = Brushes.White;

                    Grid.SetRow(btMore, showInfo.RowDefinitions.Count);
                    Grid.SetColumn(btMore, 1);
                    showInfo.Children.Add(btMore);
                }
                else
                {
                    l2.Content = "No joined activity";
                }

                RowDefinition rowDef4 = new RowDefinition();
                rowDef4.Height = new GridLength(30);
                showInfo.RowDefinitions.Add(rowDef4);

                showInfo.Children.Add(l1);
                showInfo.Children.Add(l2);
                showInfo.Children.Add(b1);
                showInfo.Children.Add(image1);
            }

            ScrollViewer sv = new ScrollViewer();

            sv.VerticalScrollBarVisibility = ScrollBarVisibility.Visible;
            sv.Content = show;
        }
        public ShowFriendInfo(int uid, int fid)
        {
            InitializeComponent();
            this.userID = uid;
            //show user info
            ColumnDefinition c1 = new ColumnDefinition();

            c1.Width = new GridLength(120);
            userInfo.ColumnDefinitions.Add(c1);

            ColumnDefinition c2 = new ColumnDefinition();

            c2.Width = new GridLength(300);
            userInfo.ColumnDefinitions.Add(c2);

            User u = dbms.getUserByID(fid);

            Image       userPhoto   = new Image();
            ImageSource imageSource = new BitmapImage(new Uri(u.photoURL));

            userPhoto.Source = imageSource;
            userPhoto.Margin = new Thickness(10, 10, 0, 0);
            userPhoto.HorizontalAlignment = HorizontalAlignment.Left;
            userPhoto.VerticalAlignment   = VerticalAlignment.Top;

            Label lName = new Label();

            lName.FontSize            = 14;
            lName.Content             = "Name: " + u.name;
            lName.HorizontalAlignment = HorizontalAlignment.Left;
            lName.VerticalAlignment   = VerticalAlignment.Center;
            lName.Margin = new Thickness(0, 0, 0, 0);

            Label lEmail = new Label();

            lEmail.FontSize            = 14;
            lEmail.Content             = "Email: " + u.email;
            lEmail.HorizontalAlignment = HorizontalAlignment.Left;
            lEmail.VerticalAlignment   = VerticalAlignment.Center;
            lEmail.Margin = new Thickness(0, 0, 0, 0);

            Button btEdit = new Button();

            btEdit.Background          = Brushes.LightBlue;
            btEdit.Width               = 130;
            btEdit.Height              = 25;
            btEdit.FontSize            = 14;
            btEdit.Margin              = new Thickness(20, 0, 0, 0);
            btEdit.HorizontalAlignment = HorizontalAlignment.Left;
            btEdit.VerticalAlignment   = VerticalAlignment.Center;
            if (dbms.isFollowed(userID, fid))
            {
                btEdit.Content = "unfollow";
                btEdit.Click  += (sender, eventArgs) =>
                {
                    dbms.unfollow(userID, fid);
                    btEdit.IsEnabled = false;
                };
            }
            else
            {
                btEdit.Content = "follow";
                btEdit.Click  += (sender, eventArgs) =>
                {
                    dbms.followFriend(userID, fid);
                    btEdit.IsEnabled = false;
                };
            }

            Grid.SetRow(userPhoto, 0);
            Grid.SetRowSpan(userPhoto, 2);
            Grid.SetColumn(userPhoto, 0);

            Grid.SetRow(lName, 0);
            Grid.SetColumn(lName, 1);
            RowDefinition row1 = new RowDefinition();

            row1.Height = new GridLength(50);
            userInfo.RowDefinitions.Add(row1);

            Grid.SetRow(lEmail, 1);
            Grid.SetColumn(lEmail, 1);
            RowDefinition row2 = new RowDefinition();

            row2.Height = new GridLength(50);
            userInfo.RowDefinitions.Add(row2);

            Grid.SetRow(btEdit, 3);
            Grid.SetColumn(btEdit, 1);
            RowDefinition row4 = new RowDefinition();

            row4.Height = new GridLength(40);
            userInfo.RowDefinitions.Add(row4);

            RowDefinition row5 = new RowDefinition();

            row5.Height = new GridLength(40);
            userInfo.RowDefinitions.Add(row5);


            RowDefinition row6 = new RowDefinition();

            row6.Height = new GridLength(10);
            userInfo.RowDefinitions.Add(row6);

            userInfo.Children.Add(lName);
            userInfo.Children.Add(userPhoto);
            userInfo.Children.Add(lEmail);
            userInfo.Children.Add(btEdit);
        }