【发布时间】:2013-02-15 19:58:32
【问题描述】:
我需要为 WPF TextBox 控件的内容添加一些装饰。这基本上可以正常工作,我可以获得指定字符索引的位置并相应地布局我的其他元素。但是当滚动 TextBox 时,这一切都会中断。我的布局位置不再与显示的文本匹配,因为它已移动到其他地方。
现在我很惊讶 TextBox 类没有提供有关其滚动状态的任何信息,也没有提供滚动更改时的任何事件。我现在能做什么?
我使用 Snoop 来确定是否有一些我可以询问的滚动子元素,但 ScrollContentPresenter 也没有任何可用的滚动信息。我真的很想将我的装饰元素直接放入滚动区域,以便滚动也能影响它们,但只能有一个内容控件,这已经是 TextBox 内部结构之一了。
【问题讨论】:
-
也许尝试订阅 ScrollViewer.ScrollChanged 路由事件?它提供了诸如范围高度、滚动偏移、视口大小(均以水平和垂直尺寸表示)之类的信息,也许它会有所帮助。我不太确定我完全理解你的任务。不过试试看吧。