阻止ScrollViewer滚动

时间:2016-08-08 06:47:09

标签: wpf scroll treeview

如何阻止WPF(3.5)TreeView滚动事件?

有一个ScrollViewer_ScrollChanged事件,但这不好,因为在滚动发生后称为,所以我只能撤消滚动,而不是阻止。
我看起来像这样(伪):

ScrollViewer_ScrollChangING(EventParam e)
{
    if (...)
       e.Cancel = true;
}

由于

修改

我想要滚动条,用户应该能够滚动,除了,当某些情况发生时if (...) - 只有然后阻止动态滚动。

更确切地说,我希望滚动条具有整数位置,因此如果用户滚动到1000.45,则应将其调整为1000.
这是因为否则WPF在树中的位图有渲染问题...
如果我们允许滚动位置只是整数,那么渲染似乎没问题 (不,SnapToDevicePixels没有帮助,不,我们不能使用LayouRouding)

1 个答案:

答案 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
}