SyncFusion SfrichTextBoxAdv-复制WPF TexTrange功能



我正在尝试让用户在sfrichtextboxadv中进行选择,并将这些选择(文本范围)保存到集合中。问题是我还希望文本范围在添加或删除其之前更新其开始/结束位置。即:如果在文本范围之前添加文本并将其向前推动,则需要相应地增加启动/结束索引。

在常规的wpf richtextbox中,我能够使用TexTrange进行此操作。使用TexTrange,我可以将选定的文本保存为Textrange变量。然后,如果在TexTrange之前添加了一些文本并将其推向文档中,则启动和结束文本属性会发生相应的变化。

使用sfrichtextboxadv,当我将选定的文本保存为selectionAdv变量时,每当光标在文档中移动到当前光标位置(当前选择)时,变量会更新。因此,我什至无法将选择存储在变量中,因为它随着光标在文档中移动时一直在变化。我尝试使用两个TextPosition变量存储选择:

var start = richTextBoxAdv.Selection.Start;
var end = richTextBoxAdv.Selection.End;

但是,当光标移动时,它们仍然更新自己

谢谢您使用SyncFusion产品。

在sfrichtextboxadv控制中," selectionAdv"的" start"one_answers" end"属性表示当前的光标位置。因此,每当光标移动时,它将自动更新。但是,您可以使用" TextPosition"类的" GethierArchicalIndex"属性存储当前的文本位置,该属性将返回字符串。稍后,您可以使用存储的层次结构索引来检索文本位置,并使用" documentAdAdv"类的" getTextposition(String serrarchicalIndex)"方法。请从以下链接中参考我们的类参考文献文档。

http://help.syncfusion.com/cr/cref_files/wpf/sfrichtextboxadboxadv/syncfusion.sfrichtextboxadboxadboxadboxadv.wpf~syncfusion.windows.windows.controls.controls.controls.richtrols.richtrols.richtrels.richtextboxboxadv.selectiondv.selectionadv.selectionadv start.htmlll.htmll.htmll lmhttp://help.syncfusion.com/cr/cref_files/wpf/sfrichtextboxadv/syncfusion.sfrichtextboxadboxadboxadv.wpf~syncfusion.windows.controls.controls.controls.richtreols.richtextboxAdboxAdboxAdv.Selectionadv.Selectionadvcoutadv~End.html.htmlhttp://help.syncfusion.com/cr/cref_files/wpf/wpf/sfrichtextboxadv/syncfusion.sfrichtextboxadboxadboxadv.wpf~syncfusion.windows.controls.controls.controls.richtreols.richtextboxboxadboxadv.documentAdv.documentAdv.getTextpptppottpportpottextpportstportpottriptextpotterxtporting <<p>我们已经准备了一个简单的示例,以证明在按钮点击和方法中保留选择的选择,以从层次索引中获取文本位置。

示例代码(C#):

List<SelectionRangeExt> selectionRanges = new List<SelectionRangeExt>(); 
private void Button_Click(object sender, RoutedEventArgs e) 
{ 
    SelectionRangeExt range = new SelectionRangeExt(); 
    range.Start = richTextBoxAdv.Selection.Start.GetHierarchicalIndex; 
    range.End = richTextBoxAdv.Selection.End.GetHierarchicalIndex; 
    selectionRanges.Add(range); 
} 
public TextPosition GetTextPoistion(string hierarchicalIndex) 
{ 
    if (hierarchicalIndex == null) 
        return null; 
    return richTextBoxAdv.Document.GetTextPosition(hierarchicalIndex); 
} 

样本链接:sample.zip。

文本位置的层次索引是静态值,在文本位置之前添加或修改文本时不会更新它。

有关进一步的查询,请通过以下链接联系我们的支持,https://www.syncfusion.com/support/directtrac

问候,Venkatesan。

相关内容

  • 没有找到相关文章

最新更新