|
Скролинг в Grid
|
|||
---|---|---|---|
#18+
Здравствуйте! Есть ScrollViewer, внутри его Grid состоящий из n-го количества строк, которые создаются в ходе выполнения программы. Необходимо, что бы была возможность прокрутки, но первые несколько строк были закреплены (при прокрутке оставались статичными). Как можно добиться такого результата? (прокручивать не весь грид, а только его часть). Очень нужна помощь, спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2017, 14:55 |
|
Скролинг в Grid
|
|||
---|---|---|---|
#18+
HuKSoH, Ну, Grid для прокрутки это фигня идея, потому как виртуализацию Grid не поддерживает. Можно сделать набор Grid'ов, уложенных в VirtualizingStackPanel, так хотя бы будет вертикальная виртуализация. Для объединения ширины столбцов можно использовать SharedSize у Grid'ов, либо Binding Чтоб были закрепленные элементы прокрутки, нужно 2 ItemsControl в DockPanel друг над другом, при это 2ой должен находится во ViewPort'е прокрутки, а второй просто крепиться сверху. Но нужно будет массу мелочей учитывать, либо делать свой ItemsControl. Как вариант можно воспользоваться DataGrid'ом, он уже умеет фиксировать столбцы и строки (На сколько я помню), поддерживает виртуальную и горизонтальную виртуализацию, синхронизирует размеры столбцов во всех строках. Поддерживает создание нового элемента и более продвинутые представления коллекций. Главное его как следует переработать внешне, можно сделать так, что с 1 взгляда и не поймешь, DataGrid ли это :) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2017, 22:10 |
|
|
start [/forum/topic.php?fid=21&fpage=9&tid=1440558]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
71ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
others: | 237ms |
total: | 404ms |
0 / 0 |