如何阻止WPF(3.5)TreeView滚动事件?
有一个ScrollViewer_ScrollChanged
事件,但这不好,因为在滚动发生后称为,所以我只能撤消滚动,而不是阻止。
我看起来像这样(伪):
ScrollViewer_ScrollChangING(EventParam e)
{
if (...)
e.Cancel = true;
}
由于
修改
我想要滚动条,用户应该能够滚动,除了,当某些情况发生时if (...)
- 只有然后阻止动态滚动。
更确切地说,我希望滚动条具有仅整数位置,因此如果用户滚动到1000.45,则应将其调整为1000.
这是因为否则WPF在树中的位图有渲染问题...
如果我们允许滚动位置只是整数,那么渲染似乎没问题
(不,SnapToDevicePixels没有帮助,不,我们不能使用LayouRouding)
答案 0 :(得分:0)
解决方法如下所示:
private void TreeView_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
if (e.OriginalSource is System.Windows.Controls.Border)
{
...your code
}
}
private void TreeView_PreviewMouseWheel(object sender, MouseWheelEventArgs e)
{
...your code
}