none
WPF的RichTextBox里面怎么添加Image? RRS feed

  • 问题

  • 在XAML里面可以这样写:
    <RichTextBox Height="100" HorizontalAlignment="Left" Margin="90,57,0,0" Name="richTextBox1" VerticalAlignment="Top" Width="200" >
      <RichTextBox.Document>
      <FlowDocument Focusable="True">
      <Paragraph>
      <Run Text="123 哈哈"/>
      <Image Source="D:\我的图片\1342892_10.jpg" Focusable="True" Height="50"/>
      <Run Text="123 哈哈"/>
      </Paragraph>
      </FlowDocument>
      </RichTextBox.Document>
      </RichTextBox>

    那如果我要在程序运行的时候点击按钮就添加一个<Image>到RichTextBox里,请问要怎么写后台代码?

     

     

    2010年4月7日 3:11

答案

  •     private void button1_Click(object sender, RoutedEventArgs e)
            {
                Image i = new Image();

                FlowDocument f = new FlowDocument();
                f.Blocks.Add(new BlockUIContainer(i));
                richTextBox1.Document = f;
            }

    • 已标记为答案 梦心 2010年4月8日 5:01
    2010年4月7日 8:32
    版主

全部回复

  • 你好!

    建议你到 WPF 版块提问,可能会更快的得到回复。

    WPF 地址:http://social.microsoft.com/Forums/zh-CN/wpfzhchs/threads


    知识改变命运,奋斗成就人生!
    2010年4月7日 6:19
    版主
  • 这个主要是看 Image 在哪里。如果希望动态添加一个 Image,那么:

    * 如果此 Image 是文件系统上的,则直接用代码改变 Image.Source 属性;
    * 如果此 Image 是一个 Stream,用 Image 上的静态方法转换 Steam 为 Image 后,用 Controls 集合的 Add 方法加进去;
    * 如果此 Image 是一个资源,则改 Image.Source 为 pack://application,,/ResourceFolder/Name,详细请参考 Pack URIs in WPF.


    Mark Zhou
    2010年4月7日 7:32
  •     private void button1_Click(object sender, RoutedEventArgs e)
            {
                Image i = new Image();

                FlowDocument f = new FlowDocument();
                f.Blocks.Add(new BlockUIContainer(i));
                richTextBox1.Document = f;
            }

    • 已标记为答案 梦心 2010年4月8日 5:01
    2010年4月7日 8:32
    版主