[WPF] ScrollViewer и элементы со своим скроллом
От: Dron247  
Дата: 25.02.11 04:37
Оценка:
Всем привет, есть ScrollViewer, внутри него расположены ListBox и TreeView, прокрутка колесом мыши работает только тогда, когда курсор мыши находится внутри скроллвьювера, но за пределами списка и дерева, что нужно сделать, чтобы прокрутка работала и тогда, когда указатель находится внутри списка и дерева. Хотя-бы запрос для гугеля составить помогите


Твой IP на моем юзербаре
Re: [WPF] ScrollViewer и элементы со своим скроллом
От: Sinix  
Дата: 25.02.11 05:17
Оценка: 2 (1)
Здравствуйте, Dron247, Вы писали:

D>Всем привет, есть ScrollViewer, внутри него расположены ListBox и TreeView, прокрутка колесом мыши работает только тогда, когда курсор мыши находится внутри скроллвьювера, но за пределами списка и дерева, что нужно сделать, чтобы прокрутка работала и тогда, когда указатель находится внутри списка и дерева.


Решение в лоб — менять шаблон у listbox|запрещать ему прокрутку (ScrollViewer.VerticalScrollBarVisibility=Disabled).
см
http://stackoverflow.com/questions/1293883/putting-listbox-in-scrollviewer-mouse-wheel-does-not-work

Может, есть решение проще, надо разбираться.
Re[2]: [WPF] ScrollViewer и элементы со своим скроллом
От: DmitryMS  
Дата: 25.02.11 09:20
Оценка:
это про взаимодействие логического и клавиатурного фокусов, посмотрите Logical Focus WPF.
Re[3]: [WPF] ScrollViewer и элементы со своим скроллом
От: Sinix  
Дата: 25.02.11 10:38
Оценка:
Здравствуйте, DmitryMS, Вы писали:

DMS>это про взаимодействие логического и клавиатурного фокусов, посмотрите Logical Focus WPF.

Почитайте ссылку в моём посте. Проблема — в scrollview из шаблона listview. Он проглатывает MouseScroll и внешний скроллер о нём попросту не узнаёт. Логический фокус тут ни при чём.
Re[4]: [WPF] ScrollViewer и элементы со своим скроллом
От: DmitryMS  
Дата: 25.02.11 10:53
Оценка:
hows bout AddHandler?
Re[5]: [WPF] ScrollViewer и элементы со своим скроллом
От: Sinix  
Дата: 25.02.11 10:56
Оценка: +1
Здравствуйте, DmitryMS, Вы писали:

DMS>hows bout AddHandler?

Только в preview. Но это изврат.
Re[6]: [WPF] ScrollViewer и элементы со своим скроллом
От: DmitryMS  
Дата: 25.02.11 11:27
Оценка:
большиство решений в wpf — извраты implementation wise.

S>Только в preview. Но это изврат.


Что хорошо, это можно облагородить, написать beahvior, которое будет гулять по дереву и удалять/добавляь хендлеры.
Re[7]: [WPF] ScrollViewer и элементы со своим скроллом
От: Sinix  
Дата: 25.02.11 11:41
Оценка:
Здравствуйте, DmitryMS, Вы писали:

DMS>большиство решений в wpf — извраты implementation wise.


S>>Только в preview. Но это изврат.


DMS>Что хорошо, это можно облагородить, написать beahvior, которое будет гулять по дереву и удалять/добавляь хендлеры.

А не проще ли добавить <ListBox ScrollViewer.VerticalScrollBarVisibility=Disabled/>?
Если использовать Preview-хандлер, то behavior не потребуется.
Re[8]: [WPF] ScrollViewer и элементы со своим скроллом
От: DmitryMS  
Дата: 25.02.11 11:50
Оценка:
проще
Re[8]: [WPF] ScrollViewer и элементы со своим скроллом
От: Dron247  
Дата: 28.02.11 02:34
Оценка:
Здравствуйте, Sinix, Вы писали:

S>Здравствуйте, DmitryMS, Вы писали:


DMS>>большиство решений в wpf — извраты implementation wise.


S>>>Только в preview. Но это изврат.


DMS>>Что хорошо, это можно облагородить, написать beahvior, которое будет гулять по дереву и удалять/добавляь хендлеры.

S>А не проще ли добавить <ListBox ScrollViewer.VerticalScrollBarVisibility=Disabled/>?
S>Если использовать Preview-хандлер, то behavior не потребуется.

Проще оказался вариант с переписыванием стиля, так как
1) реализуется простым копипастом и лучше подходит для повторного использования
2) менее велосипеден, и позволяет упростить визуальное дерево (добавить скроллер в скроллер, и добавить код, чтобы первый скроллер не работал.. пиздец )

Всем спасибо!


Твой IP на моем юзербаре
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.