Я делаю UI в WPF, у меня есть набор функциональных областей, и я использую Сетку для организации его.
Теперь Сетка, которую я хочу, не универсальна, поскольку в, некоторая функциональная область охватит несколько ячеек в Сетке. Я задавался вопросом, что наиболее успешная практика находится в решении этого. Если я создаю одну сетку, и затем для каждой функциональной области устанавливает его для охвата нескольких ячеек, или если я разделил ее на несколько вложенных Сеток.
В этом изображении крайняя левая панель (панели, разделенные серой панелью), - то, что я хочу. Средние телевикторины одна сетка, где синие строки перекрываются функциональной областью. Самые правые телевикторины, как я мог сделать это с вложенными сетками. Вы видите, что зеленая сетка имеет одно горизонтальное разделение. В нижней части ячейкой является желтая Сетка с вертикальным разделением. В стороне левой ячейкой является красная Сетка со снова горизонтальным разделением. Сетки http://www.freeimagehosting.net/uploads/08f2711bae.jpg
Я просто задавался вопросом, что такое наиболее успешная практика, середина или правильная панель.
ОБНОВЛЕНИЕ: Только для разъяснения, больше 'кода ориентировало' пример:
Средняя панель
Панель Right:
Обновление: Я должен признать, что теперь, когда я выписал код для обоих подходов, решение "для промежутка" выглядит намного лучше.
Я бы лично пошел с вашим средним макетом, используя одну сетку с диапазонами столбцов и строк, чтобы структурировать общий макет пользовательского интерфейса, а затем поместить панель в каждый из этих разделов, чтобы содержать фактические элементы управления (и, возможно, дальнейший подробный макет).
Честно говоря, я бы выбрал док-панель или что-то подобное для композиции верхнего уровня и сетки для нижнего уровня
Боюсь, я не могу различить ваши решения по цвету в разных сетках и подсетках.
Что я могу посоветовать, так это создать UserControl для каждой функциональной области, а затем иметь сетку для организации этих областей.
Каждый UserControl затем может создавать свой собственный макет (с другой сеткой, или более простой StackPanel, или что-то еще) и отвечает за отображение подмножества данных / обработку пользовательских событий в своей собственной области.
Тогда внешняя сетка является арбитром для вещей, которые включают более одной области (например, пересылка событий между областями).
Я бы рекомендовал создать одну главную сетку, разделенную на функциональные области, а затем создать отдельные сетки / стековыепанели / и т. Д. В этих областях. Вы можете не знать требований к каждой функциональной области, поэтому вы можете свободно расположить их элементы и переключаться между макетами. Когда вы помещаете все в одну сетку со столбцами и / или строками диапазона - вы получаете «трудный в управлении» макет.