forachange 发表于 2012-5-21 18:08:00

从word里加载数学公式问题

环境:textcontrol 17, vs2010
界面上有两个textcontrol,然后将word里写好的数学公式复制粘贴。
此时,复制后的公式会有灰色背景。
http://www.tu265.com/di-e40487ea35e62641b31e456bea268564.jpg
但是,在公式前面加一个空格,就没有问题了。
http://www.tu265.com/di-804e7e07d3e327c5e774fd013644fd53.jpg

我的代码:private void Button_Click(object sender, RoutedEventArgs e)
      {
            string str = string.Empty;
            textControl1.Save(out str, StringStreamType.RichTextFormat);
            textControl2.Load(str, StringStreamType.RichTextFormat);
      }

iceman 发表于 2012-5-22 09:22:00

回复 1# forachange 的帖子

forachange 你好,
我的重现步骤为:在 Word 中添加公式,赋值到 TX Text Control 中。
并没有重现楼主的问题,楼主能否把测试的 Word 文档发到论坛用于调试呢?

forachange 发表于 2012-5-22 10:47:00

谢谢,已上传附件。
下面是操作步骤:
1、运行项目,将“测试.docx”中的内容复制拷贝到第一个控件里,然后点击“测试”。此时,就会出现第一种情况。
2、在内容前面加一个空格(打一个空格键),再点击“测试”,就会出现第二中情况。

ZenosZeng 发表于 2012-5-22 17:33:00

forachange 你好

通过你的Demo的却可以重现该现象,原因是这样的:因为你只复制了这么一个分数,复制到textcontrol1中就变成了一幅图片,然后在点击Button这时就复制到textcontrol2中,此时textcontrol2中的该分数处于选中状态,所以看上去背景色是灰色的,如果你再双击该分数,然后在分数后面输入一些文字,这时候分数的灰色背景就会消失

forachange 发表于 2012-5-22 18:13:00

谢谢dof.

再点击那个分数确实可以。但是,为什么那个分数在首位时才会有这问题呢?加个空格或者把分数放后面,就不会出现这问题。





ZenosZeng 发表于 2012-5-23 09:21:00

回复 5# forachange 的帖子

forachange 你好

从我这边调试结果来看,可能原因是分数在最开始的位置时,复制之后分数处于选择状态,如果使用下面的代码进行设置之后,分数就不会有灰色的背景:
    private void Button_Click(object sender, RoutedEventArgs e)
    {
      string str = string.Empty;
      textControl1.Save(out str, StringStreamType.RichTextFormat);
      textControl2.Load(str, StringStreamType.RichTextFormat);
      textControl2.Selection.Start = textControl2.Text.Length;
      textControl2.Selection.Length = 0;
    }

forachange 发表于 2012-5-23 10:06:00

谢谢dof。
也是一种解决方案。

ZenosZeng 发表于 2012-5-23 14:56:00

OK
页: [1]
查看完整版本: 从word里加载数学公式问题