关于WPF的RichTextBox控件,Winform里面的方法WPF里面没有了呢?
在C#的winform程序中,RichTextBox控件带有一个GetCharIndexFromPosition()方法,这个方法可以根据坐标获取字符。
为什么在WPF的程序中,RichTextBox控件没有这个方法了...WPF不是应该比winform功能更强的吗?
还是说改名字了?或者说需要RichTextBox.什么.这个方法?
------最佳解决方案--------------------你的上一个帖子中有我贴的代码。在被回调的mouseenter方法中,第一个参数sender就是触发鼠标进入事件的Run,强制转换后处理即可。
------其他解决方案--------------------你听谁说WPF比WINFORM强?
------其他解决方案--------------------WPF里也有这种方法的,我以前用过,好久没写了,具体的忘记了,你好好找找,我记得好像没有winform中这么简单,我貌似记得,它要先获取内容再获取位置的
------其他解决方案--------------------Winform 控件库和WPF控件库是两个类库。相似但不相同
------其他解决方案--------------------
单纯的感觉啊,WPF是.net3.5之后才有的...感觉比较高端
------其他解决方案--------------------WPF RichTextBox中文档是基于FlowDocument,要操作其中的文本东西主要关注TextPointer和TextRange
------其他解决方案--------------------
方法属性太多啊 不好找啊 给点思路啊
------其他解决方案--------------------
谢谢,不过看着好混乱 TAT
貌似是在TextPointer里
------其他解决方案--------------------你要解决的还是你前面那个问题吧?在FlowDocument中,Run是文字所在UI的最小单位,在RichTextBox的资源中为Run定义样式,添加鼠标进入的事件处理,就可以对触发时间的相应的Run进行处理,比如获得该Run的字符串内容,字符大小,颜色等。
一个字符串颜色不同于相邻字符,该字符串必然在一个独立的Run中,所以对触发鼠标进入事件的Run进行处理即可。
WPF的RichTextBox比WinForm可包含的内容要丰富得多,保存的格式也丰富得多,你可以在msdn中查找一下相关资料,详细了解FlowDocument和FixedDocument。
------其他解决方案--------------------
嗯,我在winform里面用RichTextBox.GetCharIndexFromPosition()实现鼠标落在不同颜色的文字上给出不同提示的功能,但是在WPF里找不到类似的功能。
Run是最小单位,但是怎么才能找出来鼠标悬停在哪个run上面呢..?
------其他解决方案--------------------
哦 原来如此 成功了 !!