Example #1
0
        /// <summary>
        /// Append given string to the textblock
        /// The given string is converted into a recognized inline element
        /// i.e. hyperlink, user link, etc...
        /// The event handlers provided will be used
        /// </summary>
        /// <param name="textblock"></param>
        /// <param name="word"></param>
        /// <param name="urlClickedHandler"></param>
        /// <param name="userClickedHandler"></param>
        public static void AppendTo(
            TextBlock textblock, string word, 
            TwitterEventHandler urlClickedHandler, 
            TwitterEventHandler userClickedHandler,
            MouseEventHandler linkMouseEnterHandler,
            MouseEventHandler linkMouseLeaveHandler)
        {
            // input argument check
            if (string.IsNullOrEmpty(word))
            {
                return;
            }

            Inline element = ConvertToInline(word, urlClickedHandler, userClickedHandler, linkMouseEnterHandler, linkMouseLeaveHandler);
            if (null != element)
            {
                textblock.Inlines.Add(element);
            }
        }
Example #2
0
        /// <summary>
        /// Append given string to the textblock
        /// The given string is converted into a recognized inline element
        /// i.e. hyperlink, user link, etc...
        /// The event handlers provided will be used
        /// </summary>
        /// <param name="textblock"></param>
        /// <param name="word"></param>
        /// <param name="urlClickedHandler"></param>
        /// <param name="userClickedHandler"></param>
        public static void AppendTo(
            TextBlock textblock, string word,
            TwitterEventHandler urlClickedHandler,
            TwitterEventHandler userClickedHandler,
            MouseEventHandler linkMouseEnterHandler,
            MouseEventHandler linkMouseLeaveHandler)
        {
            // input argument check
            if (string.IsNullOrEmpty(word))
            {
                return;
            }

            Inline element = ConvertToInline(word, urlClickedHandler, userClickedHandler, linkMouseEnterHandler, linkMouseLeaveHandler);

            if (null != element)
            {
                textblock.Inlines.Add(element);
            }
        }
Example #3
0
        /// <summary>
        /// Converts a string into an inline element
        /// The provided event handlers will be used when element is clicked
        /// </summary>
        /// <param name="word"></param>
        /// <param name="urlClickedHandler"></param>
        /// <param name="userClickedHandler"></param>
        /// <returns></returns>
        public static Inline ConvertToInline(
            string word, 
            TwitterEventHandler urlClickedHandler, 
            TwitterEventHandler userClickedHandler,
            MouseEventHandler linkMouseEnterHandler,
            MouseEventHandler linkMouseLeaveHandler)
        {
            Hyperlink link;

            // input arg check
            if (string.IsNullOrEmpty(word))
            {
                return null;
            }

            // convert string to user link
            if (word.IndexOf(Constants.REPLY_PREFIX) == 0)
            {
                link = new Hyperlink();
                link.Inlines.Add(word);
                link.Foreground = Brushes.LightBlue;
                link.Click += new RoutedEventHandler(userClickedHandler);
                return link;
            }

            // convert string to url
            if (TryParseUrl(word, out link))
            {
                link.Foreground = Brushes.LightBlue;
                link.Click += new RoutedEventHandler(urlClickedHandler);

                // hover url opens a preview browser
                link.MouseEnter += new MouseEventHandler(linkMouseEnterHandler);
                link.MouseLeave += new MouseEventHandler(linkMouseLeaveHandler);

                return link;
            }

            // return plain text
            return new Run(word);
        }
Example #4
0
        /// <summary>
        /// Converts a string into an inline element
        /// The provided event handlers will be used when element is clicked
        /// </summary>
        /// <param name="word"></param>
        /// <param name="urlClickedHandler"></param>
        /// <param name="userClickedHandler"></param>
        /// <returns></returns>
        public static Inline ConvertToInline(
            string word,
            TwitterEventHandler urlClickedHandler,
            TwitterEventHandler userClickedHandler,
            MouseEventHandler linkMouseEnterHandler,
            MouseEventHandler linkMouseLeaveHandler)
        {
            Hyperlink link;

            // input arg check
            if (string.IsNullOrEmpty(word))
            {
                return(null);
            }

            // convert string to user link
            if (word.IndexOf(Constants.REPLY_PREFIX) == 0)
            {
                link = new Hyperlink();
                link.Inlines.Add(word);
                link.Foreground = Brushes.LightBlue;
                link.Click     += new RoutedEventHandler(userClickedHandler);
                return(link);
            }

            // convert string to url
            if (TryParseUrl(word, out link))
            {
                link.Foreground = Brushes.LightBlue;
                link.Click     += new RoutedEventHandler(urlClickedHandler);

                // hover url opens a preview browser
                link.MouseEnter += new MouseEventHandler(linkMouseEnterHandler);
                link.MouseLeave += new MouseEventHandler(linkMouseLeaveHandler);

                return(link);
            }

            // return plain text
            return(new Run(word));
        }