Здравствуйте, Al-Ko, Вы писали:
AK>1) должно ли влиять изменение свойств Dock или Anchor на значения свойств Location и Size у View?
Думаю, что у View таких слойств вообще не должно быть.
AK>2) как привязать к View сплиттер? Завести булевые свойства IView.HSplitter и IView.VSplitter? Как влияет наличие сплиттера на докинг?
AK>3) уместен ли вообще в нашем случае докинг без сплиттера?
AK>4) нужно ли нам вообще свойство Anchor?
AK>5) при динамическом создании View путем передвижения вертикального сплиттера из крайней левой позиции или горизонтального сплиттера из крайней верхней позиции,
AK>нужно ли создавать только один View, или создавать их столько, сколько имеется с другой стороны сплиттера?
Вот что мне пришло на ум. View должны быть вложенными! То есть мы должны сделать у View два режима:
1. View отображает данные грида.
2. View является контейнером для других View.
При этом View будет поддерживать два дополнительных свойства:
1. Выравнивание: Влево/Вверх, Вправо/Вниз, Пропроциональное. Оно будет говорить о том, как View выравнивается в родительском View.
2. Направление выравнивания внутри View: Вертикальное, Горизонтальное. Оно определяет как будут распологаться вложенные View (если они будут добавлены во View).
Таким образом по умиолчанию мы создаем View и так ак в него не добавлено других View, то оно отображает данные. Далее при добавлении в него другого View, оно переходит в режим контейнера и начинает выравнивать другие View, а уже они начинают заниматься отображением. Так как View будут иметь рекурсивную структуру, мы сможем создавать вложенности любой сложности.
Например, мы создаем два вложенных View с вертикальным расположением. Потом в одном и них добавляем еще три, но уже с горизонтальным положением. И получается довольно наворочненный варинат.
Причем все это дело будет практически жить на докинге. Остается только сделать сплитеры с помощью которых пользователь сам смог бы разделять View и вуаля!
AK>PS
AK>Нужно, наверное, переименовать View на VGView. В фреймворке есть какой-то enum View и теперь нужно давать для нашего View полное имя: RSDN.VirtualGrid.View.
VG как-то не хорошо. Давай уж тогда GridVieu. А то, во-первых, непонятное сокращение, а во-вторых, при использовании в конкретном гриде будет выглядить по дурацки.
... << RSDN@Home 1.1.4 beta 2 >>