/// <summary>
        /// 页面加载
        /// </summary>
        /// <param name="e"></param>
        protected async override void OnNavigatedTo(NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);

            Object[] parameters = e.Parameter as Object[];
            if(parameters != null && parameters.Length == 1)
            {
                _news = parameters[0] as CNNews;

                BlogTitle.Text = _news.Title;
                NewsSource.Text = _news.SourceName;
                PublishTime.Text = _news.PublishTime;
                Diggs.Text = "[" + _news.Diggs + "]";
                Views.Text = _news.Views;
                Comments.Text = _news.Comments;

                string news_content = await NewsService.GetNewsContentAsync(_news.ID);

                if(news_content != null)
                {
                    if (App.Theme == ApplicationTheme.Dark)  //暗主题
                    {
                        news_content += "<style>body{background-color:black;color:white;}</style>";
                    }
                    NewsContent.NavigateToString(news_content);
                }
                Loading.IsActive = false;
            }
        }
        /// <summary>
        /// 页面加载
        /// </summary>
        /// <param name="e"></param>
        protected async override void OnNavigatedTo(NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);

            object[] parameters = e.Parameter as object[];
            if (parameters != null && parameters.Length == 1)
            {
                _news = parameters[0] as CNNews;

                NewsTitle.Text = _news.Title;
                NewsInfo.Text = _news.SourceName + " " + _news.PublishTime;

                _totalHtml = ChatBoxTool.BaseChatHtml;
                if (App.Theme == ApplicationTheme.Dark)
                {
                    _totalHtml += "<style>body{background-color:black;color:white;}</style>";
                }
                NewsComment.NavigateToString(_totalHtml);

                List<CNNewsComment> refresh_comments = await NewsService.GetNewsCommentsAysnc(_news.ID, 1, 200);

                if (refresh_comments != null)
                {
                    string comments = "";
                    foreach (CNNewsComment comment in refresh_comments)
                    {
                        if ((App.LoginedUser != null) && (App.LoginedUser.Name == comment.AuthorName))
                        {
                            comments += ChatBoxTool.Send(comment.AuthorAvatar,
                                comment.AuthorName, comment.Content, comment.PublishTime);
                        }
                        else
                        {
                            comments += ChatBoxTool.Receive(comment.AuthorAvatar,
                            comment.AuthorName,
                            comment.Content, comment.PublishTime, comment.ID);
                        }
                    }
                    comments += "<a id='ok'></a>";

                    _totalHtml = _totalHtml.Replace("<a id='ok'></a>", "") + comments + "<a id='ok'></a>";

                    NewsComment.NavigateToString(_totalHtml);
                    Loading.IsActive = false;
                } 
            }
        }
        static string _url_news_comment = "http://wcf.open.cnblogs.com/news/item/{0}/comments/{1}/{2}";  //news_id page_index page_size

        /// <summary>
        /// 获取首页新闻
        /// </summary>
        /// <param name="page_index"></param>
        /// <param name="page_size"></param>
        /// <returns></returns>
        public async static Task<List<CNNews>> GetRecentNewsAsync(int page_index,int page_size)
        {
            try
            {
                string url = string.Format(_url_recent_news, page_index, page_size);
                string xml = await BaseService.SendGetRequest(url);

                if (xml != null)
                {
                    List<CNNews> list_news = new List<CNNews>();
                    CNNews news;

                    XmlDocument doc = new XmlDocument();
                    doc.LoadXml(xml);

                    XmlNode feed = doc.ChildNodes[1];

                    foreach (XmlNode node in feed.ChildNodes)
                    {
                        if (node.Name.Equals("entry"))
                        {
                            news = new CNNews();
                            foreach (XmlNode node2 in node.ChildNodes)
                            {
                                if (node2.Name.Equals("id"))
                                {
                                    news.ID = node2.InnerText;
                                }
                                if (node2.Name.Equals("title"))
                                {
                                    news.Title = node2.InnerText;
                                }
                                if (node2.Name.Equals("summary"))
                                {
                                    news.Summary = node2.InnerText;
                                }
                                if (node2.Name.Equals("published"))
                                {
                                    DateTime t = DateTime.Parse(node2.InnerText);
                                    news.PublishTime = t.ToString();
                                }
                                if (node2.Name.Equals("updated"))
                                {
                                    news.UpdateTime = node2.InnerText;
                                }
                                if (node2.Name.Equals("link"))
                                {
                                    news.NewsRawUrl = node2.Attributes["href"].Value;
                                }
                                if (node2.Name.Equals("diggs"))
                                {
                                    news.Diggs = node2.InnerText;
                                }
                                if (node2.Name.Equals("views"))
                                {
                                    news.Views = node2.InnerText;
                                }
                                if (node2.Name.Equals("comments"))
                                {
                                    news.Comments = node2.InnerText;
                                }
                                if (node2.Name.Equals("topic"))
                                {
                                    if (node2.HasChildNodes)
                                    {
                                        news.TopicName = node2.InnerText;
                                    }
                                    else
                                    {
                                        news.TopicName = "";
                                    }
                                }
                                if (node2.Name.Equals("topicIcon"))
                                {
                                    if (node2.HasChildNodes)
                                    {
                                        news.TopicIcon = node2.InnerText;
                                    }
                                    else
                                    {
                                        news.TopicIcon = "http://static.cnblogs.com/images/logo_small.gif";
                                    }
                                }
                                if (node2.Name.Equals("sourceName"))
                                {
                                    news.SourceName = node2.InnerText;
                                }
                            }
                            list_news.Add(news);
                        }
                    }
                    return list_news;
                }
                else
                {
                    return null;
                }
            }
            catch
            {
                return null;
            }
        }