使用IViewScroller.EnsureSpanVisible(SnapshotSpan span, EnsureSpanVisibleOptions options)
(http://msdn.microsoft.com/en-us/library/dd886036.aspx)
要创建一个跨度,使用:
var lines = view.VisualSnapshot.Lines;
var startLine = lines.FirstOrDefault(a => a.LineNumber == fromLine - 1);
var endLine = lines.FirstOrDefault(a => a.LineNumber == toLine - 1);
if (startLine == null || endLine == null)
return;
var startPosition = startLine.Start;
var endPosition = endLine.Start;
var span = new SnapshotSpan(view.TextSnapshot, Span.FromBounds(startPosition, endPosition));
而且滚动到跨度:
layer.TextView.ViewScroller.EnsureSpanVisible(span, EnsureSpanVisibleOptions.AlwaysCenter);
凡view
是所提供的IWpfTextView
您装饰者(IWpfTextViewCreationListener
)
您可以在命令后将焦点切换回工具窗口 – Cilvic 2011-06-01 12:37:05