本文整理汇总了C#中System.Windows.Documents.TextPointer.DebugAssertGeneration方法的典型用法代码示例。如果您正苦于以下问题:C# TextPointer.DebugAssertGeneration方法的具体用法?C# TextPointer.DebugAssertGeneration怎么用?C# TextPointer.DebugAssertGeneration使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Windows.Documents.TextPointer
的用法示例。
在下文中一共展示了TextPointer.DebugAssertGeneration方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: TextTreeDeleteContentUndoUnit
//------------------------------------------------------
//
// Constructors
//
//------------------------------------------------------
#region Constructors
// Creates a new instance.
// start/end span the content to copy into the new undo unit -- they
// should always share the same scoping TextElement.
internal TextTreeDeleteContentUndoUnit(TextContainer tree, TextPointer start, TextPointer end) : base(tree, start.GetSymbolOffset())
{
TextTreeNode node;
TextTreeNode haltNode;
start.DebugAssertGeneration();
end.DebugAssertGeneration();
Invariant.Assert(start.GetScopingNode() == end.GetScopingNode(), "start/end have different scope!");
node = start.GetAdjacentNode(LogicalDirection.Forward);
haltNode = end.GetAdjacentNode(LogicalDirection.Forward);
// Walk the content, copying runs as we go.
_content = CopyContent(node, haltNode);
}
示例2: IsAtCaretUnitBoundary
// Wrapper for this.TextView.IsAtCaretUnitBoundary, adds a cache.
internal bool IsAtCaretUnitBoundary(TextPointer position)
{
position.DebugAssertGeneration();
Invariant.Assert(position.HasValidLayout);
if (_rootNode.CaretUnitBoundaryCacheOffset != position.GetSymbolOffset())
{
_rootNode.CaretUnitBoundaryCacheOffset = position.GetSymbolOffset();
_rootNode.CaretUnitBoundaryCache = _textview.IsAtCaretUnitBoundary(position);
if (!_rootNode.CaretUnitBoundaryCache && position.LogicalDirection == LogicalDirection.Backward)
{
// In MIL Text and TextView worlds, a position at trailing edge of a newline (with backward gravity)
// is not an allowed caret stop.
// However, in TextPointer world we must allow such a position to be a valid insertion position,
// since it breaks textrange normalization for empty ranges.
// Hence, we need to check for TextView.IsAtCaretUnitBoundary in reverse direction here.
TextPointer positionForwardGravity = position.GetPositionAtOffset(0, LogicalDirection.Forward);
_rootNode.CaretUnitBoundaryCache = _textview.IsAtCaretUnitBoundary(positionForwardGravity);
}
}
return _rootNode.CaretUnitBoundaryCache;
}