Я только что переключился на WPF только из обычного C# .NET для более продвинутых элементов управления пользовательским интерфейсом. Мне удалось очень запутаться в том, что должно быть предельно простым, и я надеюсь, что кто-то может помочь.Вопросы управления WPF
В принципе, я хочу иметь разделы с обеих сторон (по большей части это будут ящики с списками внутри расширителей), один список в нижней части, а затем большое текстовое поле, занимающее среднюю ,
Мое понимание было в том, что я мог бы просто взять DockPanel, установить ChildFill в true, докнуть каждый, где он должен идти, и оставить последний, чтобы заполнить пробел. Кажется, что только списки не работают с DockPanel, и DockPanel, похоже, не расширяется, когда я изменяю размер окна.
Так в основном мои вопросы ...
1) Почему DockPanel не разворачивать/сжиматься при изменении размера окна?
2) Кнопки, похоже, отлично работают на панели док-станции (как и все примеры, которые я нашел), но с использованием списков ящиков, похоже, не работают должным образом. Почему это?
3) Если я поместил вместо этого поля списка внутри Expanders, если я скажу два из них на левой стороне, и я сжимаю верхний расширитель, будет ли нижний расширитель расти вверх, чтобы заполнить пробел?
Я не могу позволить себе что-либо вроде ActiPro, и я не смог заставить элементы управления AvalonDock появляться на панели инструментов MSVC 2010, поэтому я довольно сильно застрял с использованием элементов управления по умолчанию.
После ваших комментариев я вернулся и попробовал снова и получил работу по большей части. Вы были правы, когда я удалял сетку, что и заставило DockPanel работать неправильно. Единственная проблема, с которой я столкнулся сейчас, - это выяснить, как сделать два левого меню стек вертикально, а не горизонтально. Прямо сейчас оба экспандера состыкованы слева, и они показывают бок о бок, а не один в верхнем левом углу, а один внизу слева. Как я могу это решить? Вот мой XAML http://pastebin.com/bh3huDeD –
Также спасибо за ответы, которые помогли много :) –
Чтобы получить расширители в стек, вам нужно состыковать StackPanel влево, а затем поместить расширители внутри StackPanel. Кроме того, если вы хотите разместить только один блок в каждом расширителе, тогда сетки не нужны –