本文整理汇总了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));
}
示例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);
}
示例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);
}
}
示例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);
}
}
示例5: LineIntersectsSpan
private bool LineIntersectsSpan(ITextViewLine line, SnapshotSpan span)
{
return line.ContainsBufferPosition(span.Start)
|| line.ContainsBufferPosition(span.End)
|| line.Start >= span.Start;
}
示例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);
}
}
}