public void ScrollIntoView(bool alignToTop)
{
+ int row = this.textbox.LayoutLineCollection.GetLineNumberFromIndex(alignToTop ? this.start : this.end);
+ this.textbox.ScrollIntoView(row, alignToTop);
}
public void Select()
base.TryScroll(x, row);\r
}\r
\r
+ /// <summary>\r
+ /// 指定行までスクロールする\r
+ /// </summary>\r
+ /// <param name="row">行</param>\r
+ /// <param name="alignTop">指定行を画面上に置くなら真。そうでないなら偽</param>\r
+ public void ScrollIntoView(int row, bool alignTop)\r
+ {\r
+ this.Scroll(0, row);\r
+ if (alignTop)\r
+ return;\r
+ double y = this.render.TextArea.Height;\r
+ for (int i = row; i >= 0; i--)\r
+ {\r
+ int lineHeadIndex = this.LayoutLines.GetIndexFromLineNumber(i);\r
+ int lineLength = this.LayoutLines.GetLengthFromLineNumber(i);\r
+ double height = this.LayoutLines.GetLayout(i).Height;\r
+ if (y - height <= 0)\r
+ {\r
+ this.Scroll(0, i);\r
+ }\r
+ if (this.LayoutLines.FoldingCollection.IsHidden(lineHeadIndex))\r
+ continue;\r
+ y -= height;\r
+ }\r
+ }\r
+\r
public int AdjustRow(int row, bool isMoveNext)\r
{\r
if (this.LayoutLines.FoldingStrategy == null)\r
}\r
\r
/// <summary>\r
+ /// 指定行までスクロールする\r
+ /// </summary>\r
+ /// <param name="row">行</param>\r
+ /// <param name="alignTop">指定行を画面上に置くなら真。そうでないなら偽</param>\r
+ public void ScrollIntoView(int row, bool alignTop)\r
+ {\r
+ this.View.ScrollIntoView(row, alignTop);\r
+ }\r
+\r
+ /// <summary>\r
/// ファイルからドキュメントを構築する\r
/// </summary>\r
/// <param name="sr">StremReader</param>\r
}\r
\r
/// <summary>\r
+ /// 指定行までスクロールする\r
+ /// </summary>\r
+ /// <param name="row">行</param>\r
+ /// <param name="alignTop">指定行を画面上に置くなら真。そうでないなら偽</param>\r
+ public void ScrollIntoView(int row, bool alignTop)\r
+ {\r
+ this.View.ScrollIntoView(row, alignTop);\r
+ }\r
+\r
+ /// <summary>\r
/// ストリームからドキュメントを構築する\r
/// </summary>\r
/// <param name="tr">TextReader</param>\r