以编程方式将图像添加到 RichTextBox 不会显示在 Xaml 属性中

发布于 2024-08-26 18:56:24 字数 1055 浏览 5 评论 0原文

尝试以编程方式从流将图像添加到 RichTextBox。图像显示在文本框中,但是在读取 Xaml 属性时,没有图像的标记。

    private void richTextBox3_Drop(object sender, DragEventArgs e)
    {
        if (e.Data.GetDataPresent(DataFormats.FileDrop))
        {
            FileInfo[] files = (FileInfo[])e.Data.GetData(DataFormats.FileDrop);
            using (Stream s = files[0].OpenRead())
            {
                InlineUIContainer container = new InlineUIContainer();
                BitmapImage bmp = new BitmapImage();
                bmp.SetSource(s);
                Image img = new Image();
                img.SetValue(Image.SourceProperty, bmp);
                container.Child = img;

                richTextBox3.Selection.Insert(container);
            }
        }
    }

    private void Button_Click_1(object sender, RoutedEventArgs e)
    {
        // this doesn't have the markup from the inserted image
        System.Windows.MessageBox.Show(richTextBox3.Xaml);
    }

在运行时将图像插入 RichTextBox 以便将其保存到数据存储中的正确方法是什么?在 Xaml 属性中。

Trying to add an image to a RichTextBox progamatically from a Stream. The image displays in the text box, however when reading the Xaml property there is no markup for the image.

    private void richTextBox3_Drop(object sender, DragEventArgs e)
    {
        if (e.Data.GetDataPresent(DataFormats.FileDrop))
        {
            FileInfo[] files = (FileInfo[])e.Data.GetData(DataFormats.FileDrop);
            using (Stream s = files[0].OpenRead())
            {
                InlineUIContainer container = new InlineUIContainer();
                BitmapImage bmp = new BitmapImage();
                bmp.SetSource(s);
                Image img = new Image();
                img.SetValue(Image.SourceProperty, bmp);
                container.Child = img;

                richTextBox3.Selection.Insert(container);
            }
        }
    }

    private void Button_Click_1(object sender, RoutedEventArgs e)
    {
        // this doesn't have the markup from the inserted image
        System.Windows.MessageBox.Show(richTextBox3.Xaml);
    }

What is the correct way to insert an image into the RichTextBox at runtime so that it can be persisted to a data store? In the Xaml property.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

暗喜 2024-09-02 18:56:24

它不能(至少目前)。 RichTextBox 概述帮助文件显示:

Xaml返回的XAML字符串
财产将不包括任何
UIElement 对象存在于
内容。

It can't (at least currently). The RichTextBox Overview help file says:

The XAML string returned by the Xaml
property will not include any
UIElement objects that are present in
the content.

自我难过 2024-09-02 18:56:24

正如 Otaku 所说,您不能将 XAML 属性用于图像。但是,您可以通过 RTB.Blocks 集合进行循环,并在块(段落)内通过 Inlines 集合进行循环。在那里您将找到带有图像对象的 InlineUIContainer。

As Otaku says, you can't use the XAML property for images. However, you could loop trough the RTB.Blocks collection, and inside the block (paragraph) loop trough the Inlines collection. There you'll find the InlineUIContainer with the image object.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文