任何人都可以告诉我为什么这个代码会返回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方法来获得左坐标.任何人都可以看到我做错了什么.谢谢.
我有多个 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) 我尝试在调用方法中更改颜色文本 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) 如何获得与range.startOffsetInternet Explorer 8及更低版本相同的功能?
也就是说,我想要一个我可以在一个范围内调用的函数,它将告诉我容器中有多少个字符开始.