private async void share_btn_Click(object sender, RoutedEventArgs e)       //访问p站
 {
     if (c.lastImg != null)
     {
         DataPackage dataPackage = new DataPackage();
         dataPackage.RequestedOperation = DataPackageOperation.Copy;
         dataPackage.SetText(@"https://www.pixiv.net/artworks/" + c.lastImg.imgId);
         string title = loader.GetString("CopyLink");
         Clipboard.SetContent(dataPackage);
         string       content = "";
         ToastMessage tm      = new ToastMessage(title, content, ToastMessage.ToastMode.OtherMessage);
         tm.ToastPush(1);
         if (c.mode == "Recommendation")
         {
             if (recommend == null)
             {
                 recommend = new PixivRecommendation(loader, pixiv);
             }
             await recommend.ListUpdate(true, c.lastImg.imgId);
         }
     }
 }
        private async void refresh_btn_Click(object sender, RoutedEventArgs e)
        {
            switch (c.mode)
            {
            case "Bookmark":
                if (bookmark == null)
                {
                    bookmark = new PixivBookmark(loader, pixiv);
                }
                if (await bookmark.ListUpdate(true))
                {
                    string       title   = loader.GetString("BookmarkUpdate");
                    string       content = loader.GetString("RefreshExplanation");
                    ToastMessage tm      = new ToastMessage(title, content, ToastMessage.ToastMode.OtherMessage);
                    tm.ToastPush(120);
                }
                break;

            case "FollowIllust":
                if (follow == null)
                {
                    follow = new PixivFollowingIllust(loader, pixiv);
                }
                if (await follow.ListUpdate(true))
                {
                    string       title   = loader.GetString("FollowingUserUpdatingUpdate");
                    string       content = loader.GetString("RefreshExplanation");
                    ToastMessage tm      = new ToastMessage(title, content, ToastMessage.ToastMode.OtherMessage);
                    tm.ToastPush(120);
                }
                break;

            case "Recommendation":
                if (recommend == null)
                {
                    recommend = new PixivRecommendation(loader, pixiv);
                }
                if (await recommend.ListUpdate(true))
                {
                    string       title   = loader.GetString("RecommendedRefresh");
                    string       content = loader.GetString("RefreshExplanation");
                    ToastMessage tm      = new ToastMessage(title, content, ToastMessage.ToastMode.OtherMessage);
                    tm.ToastPush(120);
                }
                await recommend.ListUpdate(true);

                break;

            case "Ranking":
                if (ranking == null)
                {
                    ranking = new PixivRanking(loader, pixiv);
                    break;
                }
                if (await ranking.ListUpdate(c.rankingMode, true))
                {
                    string       title   = loader.GetString("RankingRefresh");
                    string       content = loader.GetString("RefreshExplanation");
                    ToastMessage tm      = new ToastMessage(title, content, ToastMessage.ToastMode.OtherMessage);
                    tm.ToastPush(120);
                }
                break;

            default:
                if (recommend == null)
                {
                    recommend = new PixivRecommendation(loader, pixiv);
                }
                if (await recommend.ListUpdate(true))
                {
                    string       title   = loader.GetString("RecommendedRefresh");
                    string       content = loader.GetString("RefreshExplanation");
                    ToastMessage tm      = new ToastMessage(title, content, ToastMessage.ToastMode.OtherMessage);
                    tm.ToastPush(120);
                }
                break;
            }
        }
        /// <summary>
        /// 作品更新并显示
        /// </summary>
        public async Task <bool> update()
        {
            ImageInfo img = new ImageInfo();

            //也许用反射会更好?
            switch (c.mode)
            {
            case "Bookmark":
                if (bookmark == null)
                {
                    bookmark = new PixivBookmark(loader, pixiv);
                }
                img = await bookmark.SelectArtwork();

                break;

            case "FollowIllust":
                if (follow == null)
                {
                    follow = new PixivFollowingIllust(loader, pixiv);
                }
                img = await follow.SelectArtwork();

                break;

            case "Recommendation":
                if (recommend == null)
                {
                    recommend = new PixivRecommendation(loader, pixiv);
                }
                img = await recommend.SelectArtwork();     //PixivCS在UI线程被建立,不支持从子线程调用

                break;

            case "Ranking":
                if (ranking == null)
                {
                    ranking = new PixivRanking(loader, pixiv);
                }
                img = await ranking.SelectArtwork(c.rankingMode);

                break;

            default:
                if (recommend == null)
                {
                    recommend = new PixivRecommendation(loader, pixiv);
                }
                await Task.Run(async() => { img = await bookmark.SelectArtwork(); });

                break;
            }


            if (img != null)
            {
                await viewModel.LoadImageAsync(img, c);

                if (backgroundMode.Equals("BackgroundTask"))
                {
                    RegistTask(); //重新申请后台计时触发器
                }
                else
                {
                    timer.Interval = TimeSpan.FromMinutes(c.time);
                    timer.Start();
                }
                return(true);
            }
            else
            {
                return(false);
            }
        }