예제 #1
0
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            OverAll.TheMainPage?.SelectNavPlaceholder(OverAll.GetResourceString("UserDetailPagePlain"));

            //治标不治本的加载逻辑……反正个人插画也不会太多,全部重载就好)
            if (e.Parameter is ValueTuple <int, bool> tuple)
            {
                Data.OverAll.UserList?.StopLoading();
                userid = tuple.Item1;
                _      = loadContents();
                //Data.OverAll.RefreshUserList(userid.ToString()); 治 本 (需删除85行并修改Collection中的瀑布流控制逻辑)
            }
            else if (e.Parameter is int id)
            {// 只传ID进来
                userid = id;
                _      = loadContents();
                // 只传ID进来 查看用户信息 这把信息隐藏了看什么...
                //grdDetail.Visibility = Visibility.Collapsed;
            }
            Data.OverAll.RefreshUserList(userid.ToString()); //治 标
            Data.OverAll.UserList.ResumeLoading();
            itemsSource = OverAll.UserList;
            itemsSource.CollectionChanged += ItemsSource_CollectionChanged;
            WaterfallListView.ItemsSource  = itemsSource;
            base.OnNavigatedTo(e);
        }
예제 #2
0
        private void DataTransferManager_DataRequested(DataTransferManager sender, DataRequestedEventArgs args)
        {
            var request = args.Request;

            request.Data.SetText(string.Format("{0}\n{1}\n" +
                                               "{2}:https://www.pixiv.net/member.php?id={3}\n" +
                                               "PixivFSUWP:pixiv://user?id={3}", OverAll.GetResourceString("PixivUserPlain"), detail.Name, OverAll.GetResourceString("LinkPlain"), detail.ID));
            request.Data.Properties.Title       = string.Format("{0}:{1}", OverAll.GetResourceString("ArtistPlain"), detail.Name);
            request.Data.Properties.Description = OverAll.GetResourceString("UserShareTipPlain");
        }
예제 #3
0
        private void WaterfallListView_RightTapped(object sender, RightTappedRoutedEventArgs e)
        {
            ListView listView = (ListView)sender;

            tapped         = ((FrameworkElement)e.OriginalSource).DataContext as ViewModels.WaterfallItemViewModel;
            quickStar.Text = (tapped.IsBookmarked) ?
                             OverAll.GetResourceString("DeleteBookmarkPlain") :
                             OverAll.GetResourceString("QuickBookmarkPlain");
            quickStar.IsEnabled = tapped.Title != null;
            quickActions.ShowAt(listView, e.GetPosition(listView));
        }
예제 #4
0
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);
            if (e.Parameter is ListContent content)
            {
                listContent = content;
            }
            switch (listContent)
            {
            case ListContent.Recommend:
                if (IllustsCollectionManager.RecommendList is null)
                {
                    IllustsCollectionManager.RefreshRecommendList();
                }
                WaterfallListView.ItemsSource = IllustsCollectionManager.RecommendList;
                break;

            case ListContent.Bookmark:
                if (IllustsCollectionManager.BookmarkList is null)
                {
                    IllustsCollectionManager.RefreshBookmarkList();
                }
                WaterfallListView.ItemsSource = IllustsCollectionManager.BookmarkList;
                break;

            case ListContent.Following:
                if (IllustsCollectionManager.FollowingList is null)
                {
                    IllustsCollectionManager.RefreshFollowingList();
                }
                WaterfallListView.ItemsSource = IllustsCollectionManager.FollowingList;
                break;

            case ListContent.Ranking:
                if (IllustsCollectionManager.RankingList is null)
                {
                    IllustsCollectionManager.RefreshRankingList();
                }
                WaterfallListView.ItemsSource = IllustsCollectionManager.RankingList;
                break;

            case ListContent.SearchResult:
                ((Frame.Parent as Grid)?.Parent as MainPage)?.SelectNavPlaceholder(OverAll.GetResourceString("SearchPagePlain"));
                WaterfallListView.ItemsSource = IllustsCollectionManager.SearchResults.Pop();
                break;
            }
            if (WaterfallListView.ItemsSource is IllustsCollectionBase <ViewModels.WaterfallItemViewModel> collection)
            {
                Debug.WriteLine(WaterfallListView.ItemsSource + "\tResumeLoading");
                collection.ResumeLoading();
                verticalOffset = collection.VerticalOffset;
            }
        }
예제 #5
0
        private async void BtnFollow_Click(object sender, RoutedEventArgs e)
        {
            var btnSender = sender as ToggleButton;

            btnSender.IsEnabled = false;
            if (btnSender.IsChecked == true)
            {
                btnSender.IsChecked = false;
                //进行关注
                txtBtnFollow.Text = OverAll.GetResourceString("RequestingPlain");
                bool res;
                try
                {
                    await new PixivAppAPI(Data.OverAll.GlobalBaseAPI)
                    .PostUserFollowAddAsync(detail.ID.ToString());
                    res = true;
                }
                catch
                {
                    res = false;
                }
                if (res)
                {
                    btnSender.IsChecked = true;
                    txtBtnFollow.Text   = OverAll.GetResourceString("FollowingPlain");
                }
                btnSender.IsEnabled = true;
            }
            else
            {
                btnSender.IsChecked = true;
                //取消关注
                txtBtnFollow.Text = OverAll.GetResourceString("RequestingPlain");
                bool res;
                try
                {
                    await new PixivAppAPI(Data.OverAll.GlobalBaseAPI)
                    .PostUserFollowDeleteAsync(detail.ID.ToString());
                    res = true;
                }
                catch
                {
                    res = false;
                }
                if (res)
                {
                    btnSender.IsChecked = false;
                    txtBtnFollow.Text   = OverAll.GetResourceString("NotFollowingPlain");
                }
                btnSender.IsEnabled = true;
            }
        }
예제 #6
0
        async Task loadContents()
        {
            var res = await new PixivAppAPI(Data.OverAll.GlobalBaseAPI)
                      .GetUserDetailAsync(userid.ToString());

            detail = Data.UserDetail.FromObject(res);
            string _getText(string input) => (input == "") ? OverAll.GetResourceString("PrivatePlain") : input;

            txtUsername.Text      = detail.Name;
            txtAuthor.Text        = detail.Name;
            txtAccount.Text       = "@" + detail.Account;
            txtAuthorAccount.Text = txtAccount.Text;
            txtWebPage.Text       = (detail.WebPage == "") ? OverAll.GetResourceString("PrivateOrNonePlain") : detail.WebPage;
            if (detail.Gender == "")
            {
                txtGender.Text = OverAll.GetResourceString("PrivatePlain");
            }
            else
            {
                txtGender.Text = (detail.Gender == "male") ? OverAll.GetResourceString("MalePlain") : OverAll.GetResourceString("FemalePlain");
            }
            txtBirthday.Text = _getText(detail.BirthDay);
            txtRegion.Text   = _getText(detail.Region);
            txtJob.Text      = _getText(detail.Job);
            string _getHW(string input) => (input == "") ? OverAll.GetResourceString("UnknownPlain") : input;

            txtPC.Text            = _getHW(detail.PC);
            txtMonitor.Text       = _getHW(detail.Monitor);
            txtTool.Text          = _getHW(detail.Tool);
            txtScanner.Text       = _getHW(detail.Scanner);
            txtTablet.Text        = _getHW(detail.Tablet);
            txtMouse.Text         = _getHW(detail.Mouse);
            txtPrinter.Text       = _getHW(detail.Printer);
            txtDesktop.Text       = _getHW(detail.Desktop);
            txtMusic.Text         = _getHW(detail.Music);
            txtDesk.Text          = _getHW(detail.Desk);
            txtChair.Text         = _getHW(detail.Chair);
            txtBtnFollow.Text     = detail.IsFollowed ? OverAll.GetResourceString("FollowingPlain") : OverAll.GetResourceString("NotFollowingPlain");
            btnFollow.IsChecked   = detail.IsFollowed;
            imgAvatar.ImageSource = await Data.OverAll.LoadImageAsync(detail.AvatarUrl);

            imgAuthor.ImageSource = imgAvatar.ImageSource;
        }
예제 #7
0
        private async void btnSetWallpaper_Click(object sender, RoutedEventArgs e)
        {
            if (UserProfilePersonalizationSettings.IsSupported())
            {
                var img  = mainImg.Source as WriteableBitmap;
                var file = await ApplicationData.Current.LocalFolder.CreateFileAsync("wallpaper.png", CreationCollisionOption.ReplaceExisting);

                if (file is null)
                {
                    return;
                }
                using (var fs = await file.OpenAsync(FileAccessMode.ReadWrite))
                {
                    var encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.PngEncoderId, fs);

                    encoder.SetPixelData(BitmapPixelFormat.Bgra8,
                                         BitmapAlphaMode.Premultiplied,
                                         (uint)img.PixelWidth,
                                         (uint)img.PixelHeight,
                                         96.0,
                                         96.0,
                                         await Data.OverAll.ImageToBytes(img));
                    await encoder.FlushAsync();

                    await fs.FlushAsync();
                }
                if (await UserProfilePersonalizationSettings.Current.TrySetWallpaperImageAsync(file))
                {
                    await ShowTip(OverAll.GetResourceString("SetWallpaper_Done"));
                }
                else
                {
                    await new MessageDialog(OverAll.GetResourceString("SetWallpaper_Failed")).ShowAsync();
                }
            }
            else
            {
                await new MessageDialog(OverAll.GetResourceString("SetWallpaper_NoSupported")).ShowAsync();
            }
        }
예제 #8
0
 protected override void OnNavigatedTo(NavigationEventArgs e)
 {
     base.OnNavigatedTo(e);
     OverAll.TheMainPage.SelectNavPlaceholder(OverAll.GetResourceString("DownloadsPlain"));
     NavControl.SelectedItem = NavControl.MenuItems[1];
 }
예제 #9
0
        private async void QuickStar_Click(object sender, RoutedEventArgs e)
        {
            if (tapped == null)
            {
                return;
            }
            var i     = tapped;
            var title = i.Title;

            try
            {
                //用Title作标识,表明任务是否在执行
                i.Title = null;
                if (i.IsBookmarked)
                {
                    bool res;
                    try
                    {
                        await new PixivAppAPI(Data.OverAll.GlobalBaseAPI)
                        .PostIllustBookmarkDeleteAsync(i.ItemId.ToString());
                        res = true;
                    }
                    catch
                    {
                        res = false;
                    }
                    i.Title = title;
                    if (res)
                    {
                        i.IsBookmarked = false;
                        i.Stars--;
                        i.NotifyChange("StarsString");
                        i.NotifyChange("IsBookmarked");
                        await OverAll.TheMainPage?.ShowTip(string.Format(OverAll.GetResourceString("DeletedBookmarkPlain"), title));
                    }
                    else
                    {
                        await OverAll.TheMainPage?.ShowTip(string.Format(OverAll.GetResourceString("BookmarkDeleteFailedPlain"), title));
                    }
                }
                else
                {
                    bool res;
                    try
                    {
                        await new PixivAppAPI(Data.OverAll.GlobalBaseAPI)
                        .PostIllustBookmarkAddAsync(i.ItemId.ToString());
                        res = true;
                    }
                    catch
                    {
                        res = false;
                    }
                    i.Title = title;
                    if (res)
                    {
                        i.IsBookmarked = true;
                        i.Stars++;
                        i.NotifyChange("StarsString");
                        i.NotifyChange("IsBookmarked");
                        await OverAll.TheMainPage?.ShowTip(string.Format(OverAll.GetResourceString("WorkBookmarkedPlain"), title));
                    }
                    else
                    {
                        await OverAll.TheMainPage?.ShowTip(string.Format(OverAll.GetResourceString("WorkBookmarkFailedPlain"), title));
                    }
                }
            }
            finally
            {
                //确保出错时数据不被破坏
                i.Title = title;
            }
        }
예제 #10
0
 protected override void OnNavigatedTo(NavigationEventArgs e)
 {
     base.OnNavigatedTo(e);
     ((Frame.Parent as Grid)?.Parent as MainPage)?.SelectNavPlaceholder(OverAll.GetResourceString("DownloadedCaption\\Content"));
 }