示例#1
0
        public object Convert(object value, Type targetType, object parameter, string language)
        {
            bool negate = false;
            if (null != parameter)
            {
                bool.TryParse(parameter.ToString(), out negate);
            }

            bool result = false;
            RichTextBlock richBlock = new StoryTeller.Converter.StringToRtf().Convert(value.ToString(), null, null, null) as RichTextBlock;
            if (null != richBlock)
            {
                foreach (Block block in richBlock.Blocks)
                {
                    Paragraph p = block as Paragraph;
                    if (null != p)
                    {
                        foreach (Inline inline in p.Inlines)
                        {
                            Run run;
                            if (ImageInline.IsImageInline(inline))
                            {
                                continue;
                            }
                            else if (null != (run = inline as Run))
                            {
                                if (!string.IsNullOrWhiteSpace(run.Text))
                                {
                                    result = true;
                                }
                            }
                        }
                    }
                }
            }

            if (!negate)
            {
                return (result) ? Visibility.Visible : Visibility.Collapsed;
            }
            else
            {
                return (result) ? Visibility.Collapsed : Visibility.Visible;
            }
        }
示例#2
0
        public object Convert(object value, Type targetType, object parameter, string language)
        {
            ImageSource result = null;
            string content = value as string;
            if (null != content)
            {
                RichTextBlock richBlock = new StoryTeller.Converter.StringToRtf().Convert(content, null, null, null) as RichTextBlock;
                if (null != richBlock)
                {
                    foreach (Block block in richBlock.Blocks)
                    {
                        Paragraph p = block as Paragraph;
                        if (null != p)
                        {
                            foreach (Inline inline in p.Inlines)
                            {
                                if (ImageInline.IsImageInline(inline))
                                {
                                    InlineUIContainer container = inline as InlineUIContainer;
                                    Image imageChild = null;
                                    if (null == container)
                                    {
                                    }
                                    else if (null == (imageChild = container.Child as Image))
                                    {
                                    }
                                    else
                                    {
                                        result = imageChild.Source;
                                        break;
                                    }
                                }
                            }
                        }
                    }
                }
            }

            return result;
        }