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; } }
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; }