ygo*_*goe 2 wpf scroll textbox
我需要在WPF TextBox控件的内容中添加一些装饰.基本上工作正常,我可以获得指定字符索引的位置,并相应地布局我的其他元素.但是当TextBox滚动时,它都会中断.我的布局位置不再与显示的文本匹配,因为它已移动到其他位置.
现在,我很惊讶TextBox类没有提供有关其滚动状态的任何信息,也没有提供滚动更改时的任何事件.我现在能做什么?
我使用Snoop来确定是否有一些我可以问的滚动子元素,但ScrollContentPresenter也没有任何可用的滚动信息.我真的很想把我的装饰元素放到滚动区域,这样滚动也会影响它们,但是只能有一个内容控件,而且它已经是TextBox内部的一个.
我不确定如何在滚动文本框时捕获事件(可能使用narohi的答案),但有一种简单的方法可以查看当前滚动位置是什么:
// Gets or sets the vertical scroll position.
textBox.VerticalOffset
Run Code Online (Sandbox Code Playgroud)
我正在使用它来查看文本框是否滚动到最后,如下所示:
public static bool IsScrolledToEnd(this TextBox textBox)
{
return textBox.VerticalOffset + textBox.ViewportHeight == textBox.ExtentHeight;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3730 次 |
最近记录: |