标签: textrange

获得offsetLeft的文本范围

任何人都可以告诉我为什么这个代码会返回undefined.

我希望这会给用户所选文本的左坐标.

function alertRangeObject(){
    var userSelection;

    if(window.getSelection)
    { 
    userSelection = window.getSelection();
    }
    else if (document.selection)
    {
    userSelection = document.selection.createRange();
    }

    var selectedText = userSelection;
    if (userSelection.text)
    {
        selectedText = userSelection.text;
    }

    var rangeObject = getRangeObject(userSelection);

    function getRangeObject(selectionObject)
    {
        if (selectionObject.getRangeAt)
        return selectionObject.getRangeAt(0);
        else { //safari
            var range = document.createRange();
            range.setStart(selectionObject.anchorNode, selectionObject.anchorOffset);
            range.setEnd(SelectionObject.focusNode, selectionObject.focusOffset);
            return range;
              }
        }


       alert(rangeObject.offsetLeft);
   }
Run Code Online (Sandbox Code Playgroud)

令人沮丧的是当你alert(rangeObject)得到所选文本时.但我认为如果这是一个文本范围,我可以使用该offsetLeft方法来获得左坐标.任何人都可以看到我做错了什么.谢谢.

javascript textrange

4
推荐指数
1
解决办法
1941
查看次数

如何将多个 FlowDocument 连接成 1 个 FlowDocument

我有多个 FlowDocument,我想将它们连接在一起。下面的方法没有 return 语句。我想做的是将 TextRange 转回 FlowDocument。

private FlowDocument Concatenate(FlowDocument source, FlowDocument target)
{   using(MemoryStream ms = new MemoryStream())
    {
      TextRange tr = new TextRange(source.ContentStart, source.ContentEnd);
      tr.Save(ms, DataFormats.XamlPackage);
      ms.Seek(0, SeekOrigin.Begin);
      tr = new TextRange(target.ContentEnd, target.ContentEnd);
      tr.Load(ms, DataFormats.XamlPackage);
   }
}
Run Code Online (Sandbox Code Playgroud)

c# wpf flowdocument textrange

3
推荐指数
1
解决办法
2626
查看次数

'SolidBrush' 参数类型对格式化属性 'Foreground' 无效。参数名称:值

我尝试在调用方法中更改颜色文本 RickTextBox wpf。但是我遇到了一些麻烦。我的麻烦是

'SolidBrush' 参数类型对格式化属性 'Foreground' 无效。参数名称:值

我的代码

MethodInvoker action = delegate
{
    TextRange textRange = new TextRange(RtTextProcess.Document.ContentStart, RtTextProcess.Document.ContentEnd);

    if (txtColor == null) txtColor = Color.Black;

    int start = textRange.Text.Length;
    var txt = string.Concat(DateTime.Now.ToString(), " : ", text);

    if (textRange.Text == "\r\n")
    {
        textRange.Text = "";
    }
    else
    {
        textRange.Text += txt.ToString();
    }

    TextPointer start1 = textRange.Start.GetPositionAtOffset(start, LogicalDirection.Forward);
    TextPointer end = textRange.Start.GetPositionAtOffset(txt.Length, LogicalDirection.Backward);
    if (start1 != null && end != null)
    {
        RtTextProcess.Selection.Select(start1, end);
    }

    // My error is here …
Run Code Online (Sandbox Code Playgroud)

c# wpf richtextbox textrange

2
推荐指数
1
解决办法
622
查看次数

Internet Explorer等效range.startOffset

如何获得与range.startOffsetInternet Explorer 8及更低版本相同的功能?

也就是说,我想要一个我可以在一个范围内调用的函数,它将告诉我容器中有多少个字符开始.

javascript internet-explorer textrange

1
推荐指数
1
解决办法
1733
查看次数