Example #1
0
		LineElement FindLineElement(BlockStructureData info) {
			foreach (var lineElement in lineElements) {
				if (BlockStructureDataComparer.Instance.Equals(lineElement.BlockStructureData, info))
					return lineElement;
			}
			return null;
		}
Example #2
0
			public double GetXPosition(BlockStructureData data) {
				TryUpdateState();
				var topPoint = data.Top.Start.TranslateTo(toXPosDictSnapshot, PointTrackingMode.Negative);
				double x;
				if (toXPosDict.TryGetValue(topPoint.Position, out x))
					return x;

				var point = GetBlockStartPoint(topPoint, data.Bottom.Start.TranslateTo(toXPosDictSnapshot, PointTrackingMode.Negative));
				var line = wpfTextView.GetTextViewLineContainingBufferPosition(point);
				var bounds = line.GetExtendedCharacterBounds(point);
				x = Math.Round(bounds.Left + bounds.Width / 2 - PEN_THICKNESS / 2) + 0.5;
				toXPosDict[topPoint.Position] = x;
				return x;
			}
Example #3
0
			public LineElement(BlockStructureData info) {
				BlockStructureData = info;
			}
Example #4
0
		double GetLineXPosition(BlockStructureData data) => xPosCache.GetXPosition(data);