示例#1
0
        private static SmartImage BuildImgControl(HtmlElement item)
        {
            //TODO: crash @ http://imgsrc.baidu.com/forum/w%3D580%3Bcp%3Dtieba%2C10%2C666%3Bap%3Dsnh48%B0%C9%2C90%2C674/sign=d10ca71e0b24ab18e016e13f05c185bd/42a0283fb80e7becd78d41d92d2eb9389a506bd0.jpg
            var url = Uri.UnescapeDataString(item.Attributes["src"]);

            if (url == null)
            {
                return(null);
            }

            S1Resource.GetAbsoluteUrl(ref url);
            bool isEmotion = S1Resource.IsEmotion(url);

            var image = new SmartImage();

            ImageResourceManager.SetUriSource(image, url);
            if (isEmotion)
            {
                image.Margin = new Thickness(0, 0, 0, -6);
            }
            else
            {
                image.Margin = new Thickness(6);
            }
            return(image);
        }
示例#2
0
        private static Inline BuildLink(HtmlElement item)
        {
            Hyperlink link  = new Hyperlink();
            var       url   = item.Attributes["href"];
            var       aText = item.PlainText();

            if (url == null || aText.Length == 0)
            {
                return(link);
            }

            if (url.ToLower().StartsWith("mailto:"))
            {
                link.Click += (o, e) =>
                {
                    EmailComposeTask emailComposeTask = new EmailComposeTask();

                    emailComposeTask.To = url.Substring(url.IndexOf(':') + 1);

                    emailComposeTask.Show();
                };
            }

            S1Resource.GetAbsoluteUrl(ref url);
            var viewParam = S1Resource.GetThreadParamFromUrl(url);

            if (viewParam != null)
            {
                Run header = new Run();
                header.Text      = "<s1: ";
                header.FontStyle = FontStyles.Italic;
                link.Inlines.Add(header);
                link.Inlines.Add(aText);
                link.Inlines.Add("> ");
                link.NavigateUri = new Uri("/Views/PostView.xaml" + viewParam, UriKind.Relative);
            }
            else
            {
                try
                {
                    link.NavigateUri = new Uri(url);
                    link.TargetName  = "_blank";
                }
                catch (Exception) { };
                link.Inlines.Add(aText);
            }
            link.FontSize   = SettingView.ContentFontSize * .85;
            link.Foreground = (Brush)Application.Current.Resources["PhoneAccentBrush"];

            return(link);
        }