当前位置: 首页>>代码示例>>C#>>正文


C# ITextViewLine.ContainsBufferPosition方法代码示例

本文整理汇总了C#中ITextViewLine.ContainsBufferPosition方法的典型用法代码示例。如果您正苦于以下问题:C# ITextViewLine.ContainsBufferPosition方法的具体用法?C# ITextViewLine.ContainsBufferPosition怎么用?C# ITextViewLine.ContainsBufferPosition使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ITextViewLine的用法示例。


在下文中一共展示了ITextViewLine.ContainsBufferPosition方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: BuildLineGeometry

 private Geometry BuildLineGeometry(SnapshotSpan span, ITextViewLine line)
 {
     double left, top, right, bottom;
       if ( line.ContainsBufferPosition(span.Start) ) {
     var bounds = line.GetCharacterBounds(span.Start);
     left = bounds.Left;
     top = line.TextTop;
       } else {
     left = line.Left;
     top = line.Top;
       }
       if ( line.ContainsBufferPosition(span.End) ) {
     var bounds = line.GetCharacterBounds(span.End);
     right = bounds.Right;
     bottom = line.TextBottom + 1;
       } else {
     right = Math.Max(line.Right, this.view.ViewportRight - 1);
     bottom = line.Bottom;
       }
       return new RectangleGeometry(new Rect(left, top, right-left, bottom-top));
 }
开发者ID:ssatta,项目名称:viasfora,代码行数:21,代码来源:RainbowHighlight.cs

示例2: GetLineTransform

 public LineTransform GetLineTransform(ITextViewLine line, double yPosition, ViewRelativePosition placement)
 {
     foreach (IAdornment adornment in this.adornments)
     {
         if (line.ContainsBufferPosition(new SnapshotPoint(line.Snapshot, adornment.Span.GetStartPoint(line.Snapshot).Position)))
         {
             //if (adornment.Visual.IsMeasureValid) {
             //  adornment.ShouldRedrawAdornmentLayout = false;
             //}
             return new LineTransform(adornment.Visual.DesiredSize.Height, 0.0, 1.0);
         }
     }
     return new LineTransform(0, 0, 1);
 }
开发者ID:asvishnyakov,项目名称:CodeContracts,代码行数:14,代码来源:LineTransformer.cs

示例3: GetLineTransform

    public LineTransform GetLineTransform(ITextViewLine line, double yPosition, ViewRelativePosition placement) {
      Contract.Assume(line != null, "interface we don't control");

      try {
        if (hasFailed)
          return new LineTransform(0, 0, 1);
        if (lineHeight == null)
          lineHeight = line.Height;
        foreach (IEnumerable<IAdornment> adornmentsGroup in adornments)
        {
          if (adornmentsGroup == null) continue;
          foreach (IAdornment adornment in adornmentsGroup)
          {
            if (adornment == null) continue;
            if (adornment.LineTransformBehavior == LineTransformBehavior.None)
              continue;
            if (line.ContainsBufferPosition(new SnapshotPoint(line.Snapshot, adornment.Span.GetStartPoint(line.Snapshot).Position)))
            {
              if (adornment.LineTransformBehavior == LineTransformBehavior.Above)
                return new LineTransform(adornment.Visual.DesiredSize.Height, 0d, 1d);
              else if (adornment.LineTransformBehavior == LineTransformBehavior.Below)
                return new LineTransform(0d, adornment.Visual.DesiredSize.Height, 1d);
              else if (adornment.LineTransformBehavior == LineTransformBehavior.BelowWithOneLineAbove)
              {
                return new LineTransform(lineHeight.Value, adornment.Visual.DesiredSize.Height, 1d);
              }
            }
          }
        }
        return new LineTransform(0, 0, 1);
      } catch (Exception exn) {
        _logger.PublicEntryException(exn, "GetLineTransform");
        return new LineTransform(0, 0, 1);
      }
    }    
开发者ID:asvishnyakov,项目名称:CodeContracts,代码行数:35,代码来源:LineTransformer.cs

示例4: GetSelectionOnTextViewLine

		public VirtualSnapshotSpan? GetSelectionOnTextViewLine(ITextViewLine line) {
			if (line == null)
				throw new ArgumentNullException(nameof(line));
			if (line.Snapshot != TextView.TextSnapshot)
				throw new ArgumentException();
			if (IsEmpty) {
				if (line.ContainsBufferPosition(ActivePoint.Position))
					return new VirtualSnapshotSpan(ActivePoint, ActivePoint);
				return null;
			}
			if (Mode == TextSelectionMode.Stream) {
				var spanTmp = line.ExtentIncludingLineBreak.Intersection(StreamSelectionSpan.SnapshotSpan);
				if (spanTmp == null)
					return null;
				var span = spanTmp.Value;
				if (End > new VirtualSnapshotPoint(line.End))
					span = new SnapshotSpan(span.Start, line.EndIncludingLineBreak);
				if (span.Length == 0)
					return null;
				return new VirtualSnapshotSpan(span);
			}
			else {
				Debug.Assert(Mode == TextSelectionMode.Box);
				if (!line.IntersectsBufferSpan(StreamSelectionSpan.SnapshotSpan))
					return null;
				var helper = new BoxSelectionHelper(this);
				return helper.GetSpan(line);
			}
		}
开发者ID:manojdjoshi,项目名称:dnSpy,代码行数:29,代码来源:TextSelection.cs

示例5: LineIntersectsSpan

 private bool LineIntersectsSpan(ITextViewLine line, SnapshotSpan span)
 {
     return line.ContainsBufferPosition(span.Start)
       || line.ContainsBufferPosition(span.End)
       || line.Start >= span.Start;
 }
开发者ID:ssatta,项目名称:viasfora,代码行数:6,代码来源:RainbowHighlight.cs

示例6: CreateVisuals

 /// <summary>
 /// Adds all of this's adornments that pertain to a particular text view line back onto this's text view's adornment layer.
 /// </summary>
 void CreateVisuals(ITextViewLine line) {
   foreach (var entry in Adornments) {
     var adornment = entry.Value;
     var tag = entry.Key;
     if (line.ContainsBufferPosition(adornment.Span.GetStartPoint(_textView.TextSnapshot))) {
       _layer.RemoveAdornmentsByTag(tag);
       CreateVisual(line, adornment, tag);
     }
   }
 }
开发者ID:asvishnyakov,项目名称:CodeContracts,代码行数:13,代码来源:AdornmentManager.cs


注:本文中的ITextViewLine.ContainsBufferPosition方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。