Как развернуть и свернуть в WPF, как на веб-странице
Знаком ли кто-нибудь с веб-сайтами, имеющими атрибут, подобный древовидному представлению? Например, сегмент загрузки веб-сайта Microsoft. Вы нажимаете кнопку "плюс", она расширяется, и все, что находится ниже, движется дальше вниз. Вы нажимаете кнопку минус, и все в этом блоке сворачивается, а содержимое ниже сдвигается вверх.
Конечно, C# - это не что иное, как HTML и CSS, но я просто хотел узнать, можно ли сделать то же самое в приложении WPF.
Похоже на древовидное представление в настоящее время в окне инструментов допускается только текст, который будет реализован. Он не допускает дополнительных объектов, таких как метки или текстовые поля.
Я открыл расширитель, и он делает хорошую работу по расширению и сжатию своего содержимого, но не вполне способен вытягивать объекты под ним обратно или толкать их обратно вниз. Вот пример сценария, который мне бы понравился.
Примером того, что я собираюсь сделать, будет Страница загрузки microsoft, Если это поможет. Как их кнопки расширения и сворачивания работают.
Так есть ли способ сделать это?
3 ответов:
Вот пример использования
Expanderв качестве способа, которым страница загрузки в Microsoft использует его. Обратите внимание, чтоHeightизRowDefinitionsимеет значениеAuto, в противном случаеExpanderне коллапсирует, когдаIsExpandedимеет значение false.<Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <Expander IsExpanded="True"> <Border BorderBrush="Red" BorderThickness="2"> <TextBlock Height="50" Text="Hello" /> </Border> </Expander> <Expander Grid.Row="1" IsExpanded="True"> <Border BorderBrush="Green" BorderThickness="2"> <TextBlock Height="50" Text="World" /> </Border> </Expander> </Grid>
Обычный вид дерева может сделать то, что вы просите.
Смотрите это замечательное объяснение кода-проекта:
Http://www.codeproject.com/Articles/124644/Basic-Understanding-of-Tree-View-in-WPF
WPF
Expanderкомпонент делает именно то, что вы хотите, и он нажимает вниз другой элемент управления, если размещен в соответствующей панели. Попробуйте использоватьStackPanel, например.
Comments